Timer0 interruptproblem (AT90CAN128)

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Hedis
Inlägg: 2493
Blev medlem: 8 december 2003, 15:10:44
Ort: Vänersborg
Kontakt:

Timer0 interruptproblem (AT90CAN128)

Inlägg av Hedis »

Har försökt få igång overflow-interrupt med timer0 nu en stund utan att lyckas.
Jag får inga interrupt helt enkelt.



Jag tror att jag jag har hittat något som kanske kan bidra till mina misslyckanden.
När jag laddar tccr0a för att sätta prescaler så hamnar det över mitt DDRB register. Så D0 & D3 är dom enda bitarna på portb som blir utgångar helt plötsligt. (laddar jag $ff till tccr0a så är alla satta som utgångar)

Jag har kollat i can128def.inc och ddrb är mappad till $04 och tccr0a är mappad till $24. (orginal can128def.inc som följde med AVRstudio ver 4.12 SP1 build 462)

Någon som kan ha en aning om vad som kan strula?
Portarna funkar som dom skall för övrigt. Uart0 samt 1 är oxå ok.

Jag har isolerat interruptrutinerna och provat med bara dom i programmet och får samma problem även då.

Någon som kan ha något tips?

Här är lite delar ur koden. (stackpekare mm är korrekt initierade)

Kod: Markera allt

.org $0000					  ; Reset vector
	jmp init
.org $0022					  ; Timer0 Overflow vector
	jmp	tim0_ovf

interrupt_init:
	ldi		temp,$01		 ; Overflow interrupt enable
	sts		timsk0,temp
	ldi		temp,$05		 ; Prescaler = clk/1024, OC0A disconnected.
	sts		tccr0a,temp
	sei							; Enable global interrupts
Edit: Hmm.... undrar om det kan vara så att portb påverkas efterssom OC0A osv. ligger på portb och har med timern o göra?
Men hela portb borde vell inte dö?
Jag använder mig ju inte av OutputCompare och har ju därför stängt av funktionen i TCCR0A.

Edit2: Nu verkar processorn ha blivit rädd för någon högre makt och började bete sig ganska normalt. (dock inga interrupts, men det kanske kommer det oxå)
Den gör dock inte som den skall med portb enligt databladet.
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Ska du inte använda OUT istället för STS?
Användarvisningsbild
Hedis
Inlägg: 2493
Blev medlem: 8 december 2003, 15:10:44
Ort: Vänersborg
Kontakt:

Inlägg av Hedis »

Inte på denna modellen. Kompilatorn vägrar om man försöker med out.
Registren ligger tydligen inte I/O mappade längre eller hur det nu var.
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Provade med avr-gcc. För TCCR0A använder den OUT och för TIMSK0 använder den STS. Så testa med OUT på TCCR0A. Fast lite underligt verkar det... :?
Användarvisningsbild
Hedis
Inlägg: 2493
Blev medlem: 8 december 2003, 15:10:44
Ort: Vänersborg
Kontakt:

Inlägg av Hedis »

Okej.

Helskummt, har nästan bergsäkert för mig att jag provade med out på den igår, men nu funkar det fint. :)
Nu återstår bara o se om jag får interrupts.

Tack sålänge.


Edit: Fungerar kanon. Tack!
Skriv svar