hallo irgendwie stehe ich gerade wie der 'Ochse vor dem Berg'... Ich versuche mit einem ATmega8 analoge Werte einzulesen, dazu habe ich mal den Code aus dem Tutorial genommen, aber das Programm kommt wohl nicht aus der ADIF-Check Schleife while(!(ADCSRA & (1<<ADIF))); raus. Nur scheint die Zeile zum löschen des ADIF-Flags ADCSRA = (1<<ADIF); das komplette Register zu überschreiben -> kein ADEN mehr -> keine weitere AD-Wandlung -> ADIF wird nie mehr gesetzt -> nothing moves hab ich da einen groben (Denk-)Fehler oder kann jemand diese Verhalten nachvollziehen? Ach ja, ich benutze die aktuelle WINAVR Version. Danke schon mal und Grüße Manfred
Sowas wie ADCSRA = (1<<ADIF); ist nur sinnvoll, wenn es sich beim entsprechenden Register um eins mit ausschließlich Interrupt-Flags handelt. Das ist hier nicht der Fall, daher sollte man entweder ADCSRA |= (1 << ADIF); schreiben oder aber gleich das gesamte Register neu beschreiben (einschließlich des ADIF).
hallo Jörg Danke erstmal für die schnelle Antwort..mit ADCSRA |= (1 << ADIF); hatte ich's auch getestet und da hat es funktioniert, war nur unsicher bzgl. der Beschreibung im Tutorial (sollte ich vielleicht nacher mal ergänzen...) BTW wann kann man dich jetzt mal zu dem Beer einladen? :-) Manfred
> BTW wann kann man dich jetzt mal zu dem Beer einladen? :-)
Eigentlich immer, ist nur die Frage: wo?
In Dresden können wir sicher schnell mal einen Termin finden, woanders
nur dann, wenn ich zufällig mal in der Ecke aufschlage.
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.