Interupt ATMega128

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Harald
Inlägg: 42
Blev medlem: 7 november 2003, 15:50:50
Ort: Östersund

Interupt ATMega128

Inlägg av Harald »

Jag fick tidigare hjälp av Erixon med interrupt på ATMega16. Nu vill jag göra samma sak med ATMega128 men det funkar inte. TCNT1L stegas upp men det blir aldrig något interupt.
Kanske är det något skitfel någonstans eller också har jag missuppfattat rubbet.
/Harald

.include "m128def.inc"
;.device ATMega128
.def Temp = r24

.cseg
.org 0x0000

rjmp RESET
.org 0x0018 ;cpu hoppar hit vid interupt Compare Match
rjmp timer1_m
RESET:

ldi r16,low(RAMEND) ;initiera stackpointer
out SPL,r16 ;initiera stackpointer
ldi r16,high(RAMEND) ;initiera stackpointer
out SPH,r16 ;initiera stackpointer
ldi Temp,0x00
out TCCR1A,Temp ;Nollställ
ldi Temp,0x0C ;Bit 3 och 4 ettor för enable av "compare match"
out TCCR1B,Temp
ldi Temp,0b10000000 ;sätt bit 7 till 1 för att enabla Timer/Counter2
out TIMSK,Temp
ldi Temp,0x3D ;61 decimalt
out OCR1AH,Temp
ldi Temp,0x09 ;OCR1AH och OCR1AL bildar ett 16-bitarstal som
out OCR1AL,Temp ;blir 15625. Det talet x 256 blir 4000 000 vilket
sei ;är klockfrekvensen. Dvs det blir ett interupt
;varje sekund

timer1_m:
inc r20
reti
Användarvisningsbild
Melker
Inlägg: 410
Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå

Inlägg av Melker »

Tror du ska sätta OSCIE1A i TIMSK för att få ett interrupt på compare match.
Harald
Inlägg: 42
Blev medlem: 7 november 2003, 15:50:50
Ort: Östersund

Inlägg av Harald »

Melker,
Jag följde ditt råd och petade in en etta i bit 4 i TIMSK och nu funkar det!
JABBBADABBBADOOOOO!!!
/Harald
Skriv svar