Hallo, habe einen ATmega 644 bei dem ich den Timer2 asychnron mit einem 32kHz Quarz betreibe. Alles so konfiguriert, dass nach 500 ms der overflow interrupt ausgelöst wird. In der Zwischenzeit wird der power safe modus aktiviert. Nur hab ich das Problem, dass scheinbar der overflow im Falle von power safe 2 mal ausgelöst wird. Im idle läufts richtig. Auch ein kurzes wait von 5 us for dem sleep statement hilft, aber das kann's ja nicht sein. Vielleicht kann mir jemand helfen. Danke, gerard
Es muß vor dem Sleep mindestens eine Periode des 32kHz Taktes erfolgen, um das gelöschte Interruptflag zu übernehmen. Das kann z.B. so geschehen:
1 | TCCR2B = TCCR2B; // dummy write |
2 | while( ASSR & 1<<TCR2BUB ); // wait until dummy write done |
Peter
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.