hallo an die Gemeinde, ich habe eine Frage zum Sleepmode am atmega8: habe ein Testprogramm geschrieben, um neuen all-avr programmer und Zielhardware zu testen, dabei soll eine LED im Sekundentakt blinken; das funktioniert auch einwandfrei, aber nach dem Anschalten leuchtet die LED ca. 70 sec bis sie beginnt zu blinken; im AVR-Studio ist dieses Verhalten nicht nachvollziebar; was also macht der Controller in dieser Zeit? Quelltext ist im Anhang
Hi Auf jeden Fall stimmt die Reihenfolge mit der du TCNT beschreibst nicht. Beim Laden eines 16-Bit-Registers erst H-Teil dann L-Teil. Beim Lesen ist es umgedreht. MfG Spess
zunächst vielen Dank an Spess, das ist tatsächlich der Grund für die Verzögerung; (war wohl zu warm gestern) ich verstehe aber 2 dinge nicht: 1. es wurde ja auch beim Neusetzen verkehrtherum beschrieben, da funktioniert es dann aber 2.wird der Fehler vom AVR-Studio ignoriert, oder war das Zufall
Hi >1. es wurde ja auch beim Neusetzen verkehrtherum beschrieben, da >funktioniert es dann aber Beim Beschreiben des H-Teils landet der Wert in einem Zwischenregister. Nach einem Reset ist das mit $00 initialisiert. Dadurch passiert folgendendes: Reset /Zwischenregister = $00 .... ldi r16,LOW(65535-500) out TCNT1L,r16 -> TCNT1H=$00 TCNT1L=$0B ldi r16,HIGH(65535-500) out TCNT1H,r16 -> Zwischenregister = $FE .... Interrupt ... ldi r16,LOW(65535-500) out TCNT1L,r16 -> TCNT1H=$FE TCNT1L=$0B ldi r16,HIGH(65535-500) out TCNT1H,r16 -> Zwischenregister = $FE .... >2.wird der Fehler vom AVR-Studio ignoriert, oder war das Zufall Ich tippe mal darauf, das du das 4er Studio benutzt. Das hat zwei Simulatoren. Der AVR Simulator ignoriert die Reihenfolge. Beim Simulator 2 geht es korrekt. MfG Spess
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.