; SLdt 2405031200 PIT-Interrupt auf AVR64EA28 ; avrasm2 .include "m4809def.inc" /* .include "AVR128DA28def.inc" .include "AVR64EA28def.inc" .include "AVR16EB28def.inc" .include "AVR32DD28def.inc" .include "m4809def.inc" */ .equ DIR_LED = VPORTA_DIR .equ IN_LED = VPORTA_IN .equ LEDpit = 7 .equ LEDlive = 6 .def tmp0 = r16 ;=============== .macro rtcstatus /* geht offenbar auch ohne rtcstatus_: lds tmp0,RTC_STATUS tst tmp0 brne rtcstatus_ pitstatus_: lds tmp0,RTC_PITSTATUS tst tmp0 brne pitstatus_ */ .endmacro ;=============== .org 0 rjmp reset .org RTC_PIT_vect ldi tmp0,$FF sts RTC_PITINTFLAGS,tmp0 sbi IN_LED,LEDpit reti ;=============== reset: sbi DIR_LED,LEDpit ; sbi DIR_LED,LEDlive rtcstatus ldi tmp0,CPU_CCP_IOREG_gc out CPU_CCP,tmp0 ldi tmp0,0b10000000 ; RUNSTDBY Run Standby sts CLKCTRL_OSC32KCTRLA,tmp0 ; noetig? rtcstatus ldi tmp0,1 sts RTC_PITINTCTRL,tmp0 rtcstatus ldi tmp0,0b0_1101_00_1 ; /16384, enable sts RTC_PITCTRLA,tmp0 rtcstatus sei main_loop: ; sbi IN_LED,LEDlive rjmp main_loop .exit =========================================================================== flash-dump: ----------- 0 1E9620 AVR64EA28 Kanal 0 f 4H > 0000 0000 C00E FFFF FFFF FFFF FFFF FFFF FFFF FFFF 0008 FFFF FFFF EF0F 9300 0153 9A17 9518 9A07 0010 ED08 BF04 E800 9300 0078 E001 9300 0152 0018 E609 9300 0150 9478 CFFF FFFF FFFF FFFF 0020 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 0028 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 0030 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 0038 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 1 1E9651 ATmega4809 Kanal 1 f 4H > 0000 0000 C00C FFFF FFFF FFFF FFFF FFFF FFFF FFFF 0008 EF0F 9300 0153 9A17 9518 9A07 ED08 BF04 0010 E800 9300 0078 E001 9300 0152 E609 9300 0018 0150 9478 CFFF FFFF FFFF FFFF FFFF FFFF 0020 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 0028 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 0030 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 0038 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF