Die ISR als
und als asm ... ohne Gewähr (den quoten darfst selberCode:#include <avr/io.h> #include <avr/interrupt.h> uint32_t volatile system_timer; ISR(...,ISR_NAKED) { static uint8_t prescaler; asm volatile (" ... " :: "s" (&prescaler), "s" (&system_timer)); })
Code:push r24 in r24,__SREG__ push r24 lds r24, %0 subi r24,-1 cpi r24,100 brne 0f lds r24, %1 subi r24, -1 sts %1, r24 lds r24, %1+1 sbci r24, -1 sts %1+1, r24 lds r24, %1+2 sbci r24, -1 sts %1+2, r24 lds r24, %1+3 sbci r24, -1 sts %1+3, r24 ldi r24,0 0: sts %0,r24 pop r24 out __SREG__,24 pop r24 reti







Zitieren

Lesezeichen