Gast
#52104
Hi Leuts, ich habe hier ein paar Zeilen Code für den ATmega 16. Nur leider wird anscheinend absolut kein Interrupt ausgeloest. Weiss einer woran das liegen könnte ? Ach ja, Fuses: BOOTRST = 1, BOOTSZ = 00 .include "m16def.inc" .def temp1 = r22 ; Interrupttabelle jmp Init ; Reset reti ; External Interrupt Request 0 reti ; External Interrupt Request 1 reti ; Timer/Counter2 Compare Match reti ; Timer/Counter2 Overflow reti ; Timer/Counter1 Capture Event reti ; Timer/Counter1 Compare Match A reti ; Timer/Counter1 Compare Match B reti ; Timer/Counter1 Overflow rjmp Timer0 ; Timer/Counter0 Overflow reti ; Serial Transfer Complete reti ; USART, Rx Complete reti ; USART Data Register Empty reti ; USART, Tx Complete reti ; ADC Conversion Complete reti ; EEPROM Ready reti ; Analog Comparator reti ; Two-wire Serial Interface reti ; External Interrupt Request 2 rjmp Timer0 ; Timer/Counter0 Compare Match reti ; Store Program Memory Ready Init: ; Stack initialisieren ldi temp1, high (RAMEND) out SPH, temp1 ldi temp1, low (RAMEND) out SPL, temp1 ; Port A ist Ausgang ldi temp1, 0xFF out DDRA, temp1 ldi temp1, 0xFF out PORTA, temp1 ; Comparewert fuer Timer0 laden ldi temp1, 36 out OCR0, temp1 ; Timer 0 Compare und Overflow aktivieren ldi temp1, 0b00000011 out TIMSK, temp1 ; Vorteiler Timer 0 = 1024 ldi temp1, 0b00000101 out TCCR0, temp1 ; Interrupts freigeben sei rjmp Main Main: rjmp Main Timer0: ; Zaehler zuruecksetzen ldi temp1, 0 out TCNT0, temp1 ldi temp1, 0x00 out PORTA, temp1 reti