Цитата(the_victor @ Dec 13 2007, 18:32)

вобщем есть такие фрагменты кода из проекта, которые еще работает только частично.
#define F_CPU 8000000 //тактовая частота
#define TIC0 ((unsigned char)(F_CPU/(1024*255))) //столько раз в секунду переполняется таймер 0
#define SCROLL_TIME ((unsigned char)(0,5*TIC0))
SIGNAL(TIMER0_OVF_vect)
{
tics.led_scroll++;
}
main()
{
//тактовая для таймера0 = F_CPU/1024
//разрешаем прерывание по переполнению таймера0
TCCR0=(1<<CS02) | (1<<CS00);
TIMSK|=(1<<TOIE0);
if ( tics.led_scroll == SCROLL_TIME )
{
tics.led_scroll = 0;
и тд прокрутка бегущей строки.
}
}
Как высчитывается #define TIC0 ((unsigned char)(F_CPU/(1024*255)))? Посчитайте отдельно и заставьте препроцессор это вычислить и сравните.( F_CPU/(1024*255)) и F_CPU/1024/255 ).
SIGNAL(TIMER0_OVF_vect) - старая форма записи, не рекомендуется, см. описание библиотеки.
Какой процессор и правильный ли выбран таймер?
Наука изощряет ум; ученье вострит память. Козьма Прутков