Это творчество оптимизатора компилятора. С оптимизацией по размеру:
Код
204 ;/// Здесь компилируется с ошибкой
205 ;// Счетный регистр (инкрементируется таймером)
206 ;TCNT0=0x00;
RCALL SUBOPT_0x0
...
;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:1 WORDS (!!!!!)
SUBOPT_0x0:
LDI R30,LOW(0)
OUT 0x32,R30
LDI R30,LOW(2)
OUT 0x33,R30
RET
...
С оптимизацией по скорости:
Код
; /// Здесь компилируется с ошибкой
; // Счетный регистр (инкрементируется таймером)
; TCNT0=0x00;
LDI R30,LOW(0)
OUT 0x32,R30
...
Если нужно по размеру, но без выкрутасов компилятора, лечится просто:
Код
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#pragma optsize-
/// Здесь компилируется с ошибкой
// Счетный регистр (инкрементируется таймером)
TCNT0=0x00;
// Источник тактового сигнала - старт таймера
// x x x x x CS02 CS01 CS00
// 0 1 0 Clk/1024= 3.9 kHz 0-stop
TCCR0=0x02;
//Программируем таймер
//Настрйка прерываний от таймера Enable Timer/Counter0 Interrupt
// OCIE TOIE2 TICIE1 OCIE1A OCIE1B TOIE1 - TOIE0
// 0 0 0 0 0 0 0 1
TIMSK = 0x01;
#pragma optsize+
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Любой, заслуживающий внимания, опыт приобретается себе в убыток...