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.