Вот простенькая программка, работающая в CodeVision:
Код
unsigned char h=0,m=0,sec=0;
void timer_init(void)
{
// timer
TCNT1H=TCNT1L=0;
TCCR1A=0;
TCCR1B=12; // cl/256 1000000/256=15625
// 15625/5=3125
OCR1A=3125;
TIMSK=16;
asm("sei");
}
char get_time()
{
sec++;
if(sec==60) {sec=0;m++;}
if(m==60) {m=0;h++;}
if(h==23) {h=0;}
}
interrupt[TIM1_COMPA] comp(void) {get_time();} // на эту строку ругается компилятор.
Посмотрел я в хидеры - в CodeVision TIM1_COMPA равняется 8. В WinAVR восьмерке соответствует SIG_OUTPUT_COMPARE1B. По моему что-то не то...
В общем программка должна каждую секунду что-нибудь делать а точнее, запускать get_time().
Помогите, плз.