Irgendwie funktioniert bei mir der noise Reduction Interrupt nicht oder nicht richtig. MCU: ATMega328 1MHz Wenn ich das Flag ADSC abfrage also Polling dann bekomme ich den ADC Wert. Nur mit Interrupt und Noise Reduction gehts nicht. In der Beschreibung von ATMEL heißt es man solle Single Conversion Mode verwenden. Also ADATE = 0 und damit kein free Running. Im Anhang ist die Initialisierungroutine enthalten. Eventuell, bzw. höchstwarscheinlich fehlt da noch was. Josef
Josef Mayr schrieb: > Im Anhang ist die Initialisierungroutine enthalten. Wieso als .txt und nicht .c? Josef Mayr schrieb: > Eventuell, bzw. höchstwarscheinlich fehlt da noch was. Ich sehe nicht, dass du irgendwo eine Wandlung startest. > // Bit 6 – ADSC: ADC Start Conversion but not for noise reduction ? Wie kommst du auf das "but not for noise reduction"?
Bei allen Sleep-Sachen ist die Reihenfolge wichtig: - setze ADC-Sleepmode - cli - disable alle anderen Interrupts - starte ADC - sleep - sei Den Interrupt leer lassen und den ADC nach dem SEI auslesen. Das spart haufenweise push/pop. Meine Erfahrung ist aber, daß die Wandlung dadurch kaum besser wird. Dafür hat man heftige Nebenwirkungen, z.B. Timer0,1,3 und UART gehen falsch, also auch die PWMs! Peter
Ups, Schusselfehler. Das SEI gehört natürlich direkt vor das SLEEP! - setze ADC-Sleepmode - cli - disable alle anderen Interrupts - enable ADC-Interrupt, starte ADC - sei - sleep Den Interrupt leer lassen und den ADC nach dem SLEEP auslesen. Das spart haufenweise push/pop. Peter
Peter Dannegger schrieb: > Ups, Schusselfehler. Na denn iss ja gut... - Ich wollte schon zweifeln... ;-))) ...
Peter Dannegger schrieb: > - sei > - sleep Übrigens, nur so am Rande: In dieser Konstellation werden die Interrupts erst mit "sleep" scharf geschaltet, und das ist auch gut so, damit nicht ausversehen noch ein Interrupt zwischen "sei" und "sleep" reingrätscht.
Hallo Dosmo, wenn man
1 | - disable alle anderen Interrupts |
durchführt und dann nur den ADC wieder freischaltet, ist es doch sehr sehr unwahrscheinlich, dass eine ADC-Wandlung innerhalb 2er Zyklen fertig ist. Oder ?
Uwe S. schrieb: > wenn man- disable alle anderen Interrupts > durchführt und dann nur den ADC wieder freischaltet, ist es doch sehr > sehr unwahrscheinlich Stimmt, wenn man das Magazin rausnimmt, braucht man den Sicherungshebel nicht mehr runter zu drücken. Bloß manchmal liegt man doch tot am Boden und denkt sich, da steckte wohl noch eine Patrone im Lauf. Es ist einfacher, immer die sichere Variante zu nehmen, als jedesmal neu nachzudenken. Der Mensch ist vergeßlich. Peter
Die Wandlung wird beim Eintritt in den ADC Noise Reduction Sleep Mode automatisch gestartet. Muss also nicht vorher gestartet werden. gruß cyblord
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.