Ich beschaeftige mich nur alle paar Jahre mit uC, bisher immer mit den älteren AVRs wie ATtiny85 o.ä.
Aus Neugier und weil ich richtigen I2C und mehr Pins brauchte, habe ich einen ATtiny1626 der relativ neuen family 2 in QFN aufgelötet. Die Teile sind ja unglaublich günstig geworden, das Löten ging auch leichter als erwartet.
Beim ersten kleinen Testprogramm fiel ich aber gleich auf die Nase und habe nach Stunden festgestellt, dass man die Interrupt-Flags selbst löschen muss. Andernfalls bleibt der einfach stehen und man dreht sich nur noch in den Interrupts.
Ist das ein genereller Konzept-Wechsel bei den neuren AVR Controllern?
Beispiel die RTC, periodic interrupt timer:
ISR (RTC_PIT_vect) { /* irgend etwas tun */ RTC.PITINTFLAGS = RTC_PI_bm; // ein Muss }
Bei einer ISR TIMER1_OVF_vect musste ich beispielsweise in einem Tiny85 keine Flags separat löschen.