у меня тоже тикает таймерное прерывание каждую милисекунду.
Что-бы избежать всех вышеперечисленных ошибок, сделал тики unsigned long
Код
volatile unsigned long tick_ms; // милисекундные тики, хватит на 49 дней непрерывной работы прибора
void delay( unsigned long del )
{
for ( del += tick_ms; del > tick_ms; )
;
}
Кстати микросекундные задержки (> 10 мкс) можно делать через Compare.
Через Compare у меня работает и 1-wire - общаюсь с DS1821
Сообщение отредактировал VAI - Feb 15 2006, 08:47