moikka,
Onko kellään tietoa, että tukeeko AVRgcc-kääntäjä ko. prossan interrupt handler käskyjä? Mun koodissa ei näytä toimivan? Onko siis mulla väärin jotain tossa koodissa?
#include <avr/io.h> #include <viive.h> #include <avr/signal.h> #include <avr/interrupt.h> //timer keskeytysohjelma SIGNAL(SIG_OWERFLOW0) { static int tick = 0; //arvo säilyy kutsukertojen välillä tick++; //tick = tick + 1 if (tick >= (16000*0,0625)) // sekunnin välein led 1--0 { PORTB = PORTB ^ 0x01; //EXOR, käännetään LSB-LED eli B.0 tick = 0; } TCNT0 = 0x06; //Timer/Counter0 uudelleen asetus } //Timer0 rekisterien asetukset void Timer0_init(void); //esittely void Timer0_init(void) //määrittely { TCCR0 = 0x03; //Timer/Counter0 conrol register //CLK suoraan ajastimelle/timerille TCNT0 = 0x06; //Timer/Counter0 alkuasetus //laskee 6 --> 256 = 250 step, sitten owerflow-keskeytyspyyntö //OCR0 = 0xFF; TIMSK = 0x03; //TOE0 //Timer/Counter0 ylivuotokeskeytys sallittu SREG = 0x80; //Status Register //Global interrupt Enable, 1 = eneble, 0 = disable } int main(void) { DDRB = 0xFF; //B out PORTB = 0x00; Timer0_init(); //initalisointifunktion kutsu while(1) { ; } }
Aihe on jo aika vanha, joten et voi enää vastata siihen.