このコード スニペットは、Atmega8を使用したクラッパー回路から取得した Atmega8 用に書かれています。このコード スニペットを Atmega16 用に簡単な説明で変換できますか。Atmega16にも同じことを実装しようとしていて、タイマー部分に問題があります。
#define BURST_TIME 70
#define READY_TIME 150
#define TIME_OUT 300
void timer_init()
{
TIFR |= (1<<TOV0);
//set interrupt on overflow
TIMSK |= (1<<TOIE0);
TCNT0 = 223;
}
ISR (TIMER0_OVF_vect)
{
TCNT0 = 223;
timer++;
if (timer == BURST_TIME)
{
burst = 1;
ready = 0;
} else if (timer == READY_TIME)
{
burst = 0;
ready = 1;
} else if (timer == TIME_OUT)
{
timer = 0;
burst = 0;
ready = 0;
first = 0;
stop_timer();
}
}
void start_timer()
{
TCCR0 |= (1<<CS02);
}
void stop_timer()
{
TCCR0 &= ~(1<<CS02);
}