Hallo Ich habe jetzt seit 2 Tagen gegoogelt und finde nicht das was Ich suche. Meine erfahrung in avr sind ungefähr note 3. Allerdings habe Ich in sachen ADC noch keine erfahrung. Ich wollte ein Lauflcht Programmieren dessen Zeit Ich über den ADC einstellen kann (anhand eines Potis) allerdings wenn Ich nach grundlagen oder Beispieltexten suche bekomme Ich meistens dieses: Amazon, in C oder Bascom. Kann mir da einer Tipps geben oder kennt einer ein ähnliches Projekt.? Gruß
hi, also das mit dem adc funktioniert ungefäht so: ADMUX &= 0xF8; // MUX Bits zuruecksetzen ADMUX |= Kanal; // Aktuelle MUX Bits aktivieren ADCSRA |= (1<<ADSC); // eine Wandlung while(!(ADCSRA&(1<<ADIF))); // warte bis wandlung abgeschlossen ADCSRA |= (1<<ADIF); analogwert = ADC; // Wert auslesen gruß michael
Hi, sieh dir das Datenblatt an. Da hat's eine Section "Analog-to-digital converter" oder sowas. Da ist genau beschrieben, welche Register was beinhalten müssen, damit das funktioniert. Ich muss allerdings auch ehrlicherweise zugeben, dass ich es selten im ersten Mal hinkriege, dass das richtig läuft. Aber dazu hat man ja den Simulator. Ich würde dir folgende Einstellungen empfehlen: - VRef intern an Vcc koppeln - Ergebis links ausrichten (ADLAR = 1) - Interrupt aktivieren - Beim Start des Programms und bei jedem ADC-Interrupt-Aufruf eine Konversion starten
ich hatte mal das gleiche problem (wie wohl jeder mal ;) ) ... habs dann anhand des datenblattes irgendwann ganz gut hinbekommen... ausserdem gibt es auch ein zwei seiten die man bei google findet, die das thema ganz gut durchleuchten... leider habe ich den sourcecode nicht hier, aber wie gesagt, datenblatt und ein bisschen googeln, dann müsste es eigentlich klappen..
Also, jetzt habe ich mein kleines programm da... ist alles einfach und selbsterklärend... den Mittelpin des Potis an Port D 1 anschliessen, die anderen beiden an Gnd und Vcc... der eingelesene wert ist ja noch 10 bit (ist beim avr so), wird nach 8-git umgewandelt, dann gibts ne kleine routine die einen Pointer in nem Lookuptable rumfährt und den dort per lpm ausgelesenen wert an die LEDs an PortB ausgibt, aber den teil brauchst du natürlich gar nicht unbedingt (schaut aber nett aus ;) ).. wenn du noch fragen zu nem bestimmten part hast, dann sag einfach bescheid..
achja, wie ich gerade sehe musst du noch die zeile .include "routines.inc" aus dem quelltext entfernen...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.