Flytte kode fra Timer0 til Timer1 på AVR

Nu er jeg jo så kommet til en ny milesten.

Da jeg nu har koden med læsning af 4x4 keypaden til at virke, har jeg fået problemer med Timer0, der i den omtalte kode benyttes til at give SW-interrupt, når en tast påvirkes. Jeg har dog brug for timerfunktionen andre steder, hvor Timer0 anvendes til at teste, om 2 knapper holdes nede i 5 sek. Denne funktion vil jeg så have over på Timer1 i stedet. Til at teste Timer1, tager jeg udgangspunkt i dette lille kodeeksempel:

#include

//Timer 0 overflow ISR interrupt [TIM0_OVF] void timer0_ovf_isr(void) { static unsigned int timecount = 0; //global time counter TCNT0 = 0x06; // start med at tælle fra 6; Tæl til 250 if(++timecount == 1000) { PORTA = PORTA ^ 0x80; // Toggle bit 7 på PortA timecount = 0; // Clear for de næste

500 us } }

void main(void) { // Timer 0 interrupt initialisering TIMSK = 0x02; // Afmask Timer 0 overflow interrupt DDRA = 0x80; // Port A bit 7 er output TCCR0 = 0x02; // Sæt Timer0 til clock/8 som clock input // Global aktivering af interrupts #asm("sei") while(1) ; }

Denne blinker fint med bit7 på PortA med 1 Hz. Dette forsøger jeg så at ændre til Timer1, således:

#include

//Timer 1 overflow ISR interrupt [TIM1_OVF] void timer1_ovf_isr(void) { static unsigned int timecount = 0; //global time counter TCNT1 = 0xFF05; // start med at tælle fra 65285; Tæl til 250 if(++timecount == 1000) { PORTA = PORTA ^ 0x80; // Toggle bit 7 på PortA timecount = 0; // Clear for de næste

500 us } }

void main(void) { // Timer 0 interrupt initialisering TIMSK = 0x02; // Afmask Timer 0 overflow interrupt DDRA = 0x80; // Port A bit 7 er output TCCR1B = 0x02; // Sæt Timer1 til clock/8 som clock input // Global aktivering af interrupts #asm("sei") while(1) ; }

Hvilket desværre blot får bit 7 til at lyse konstant - Har ikke lige en scop, så jeg kan teste, om det blot er en høj frekvens. Hvad gør jeg galt?

--
Mvh.

Tomas
Reply to
Tomas .
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.