Thomas L. schrieb:
> Aber wenn ich das Periodenregister RTC.PER auf eine Minute (60 x 4 =
> 0xF0) umstelle, weckt er trotzdem immer alle 10 Sekunden auf. Mit dem
Da Du uns leider nicht mitteilst welchen Xmega Du jetzt wirklich
verwendest, habe ich in das Datenblatt der AU-Familie geguckt:
Abs. 18.2.2:
Due to the asynchronous clock domain, events will be generated only for
every third overflow or compare match if the
period register is zero. If the period register is one, events will be
generated only for every second overflow or compare
match. When the period register is equal to or above two, events will
trigger at every overflow or compare match, just as
the interrupt request.
Abs. 18.3.2:
Bit 0 – SYNCBUSY: Synchronization Busy Flag
This flag is set when the CNT, CTRL, PER, or COMP register is busy
synchronizing between the RTC clock and
system clock domains after writing any of these registers or when waking
up from a sleep mode where the peripheral
clock is stopped. This flag is automatically cleared when the
synchronisation is complete.
Beachstest Du diese Hinweise? Leider ist Dein Code-Beispiel nicht
vollständig...
Grüßle
Volker.
Nachtrag: Warum hast Du den Interrupt-Code nicht als Text eingefügt?
Lustiges Suchspiel!
Also ich würde das Busy-Waiting im Hauptprogramm machen und erst nachdem
sich die RTC synchronisiert hat den Interrupt freigeben. Bei der
Änderung im Irpt-Handler ggf. ein Flag setzen, Irq. sperren und in
main() auf die Synchronisierung warten.