Цитата(-=Женек=- @ Sep 18 2006, 18:17)

к разъему для программирования. У меня Altera byte blaster, который можно не снимать после программирования. А еще кнопочка от ресета идет на питание для ручного сброса.
1. Отключите таки ByteBlaster и проверте что reset подтянут к питанию(через резистор).
2. флаг EXTRF в регистре MCUCSR однозначно указывает на то что у Вас происходит
External Reset.
3. И наконец смените вот этот код:
Код
void timer_init(void)
{
TCNT1H=TCNT1L=0;
TCCR1A=0;
TCCR1B=12; // cl/256 1000000/256=15625 15625/5=3125
OCR1A=3125;
TIMSK=16;
}
1000000/256=15625

это круто
15625/5=3125 откуда взялась 5 ?
1000000/256=3906,25
при ваших установках получаем:
OCR1=3125
T=(OCR1+1)*256=3126*256=800256 мкс
Я Вам настоятельно рекомендую сменить Вот на это:
Код
TCNT1H=TCNT1L=0;
OCR1A=15624;
TCCR1A=0;
TCCR1B=(1<<WGM12)|(1<<CS11)|(1<<CS10); //clk/64 1000000/64=15625
TIMSK=(1<<OCIE1A);
T=(OCR1+1)*64=15625*64=1000000 , т.е. ровно 1 сек.