Понимаете, у вас есть два варианта:
1)Продолжать делать так как сейчас со всеми недостатками с которыми вы уже столкнулись;
2)Сделать правильно как вам здесь советуют. Разрисуйте весь алгоритм на бумаге, разбейте его по блокам-задачам. Каждую задачу попытаться повесить на свой аппаратный ресурс(например вывод буфера UART по прерываниям, задержки только по таймерам и т.д.). Да, это дольше и надо тут включать мозги. Но в итоге ваша система заработает как надо.
Можно конечно прикрутить сюда RTOS, но задача того не стоит ИМХО.
Цитата:
|
Но все же:
W=MCUSR&0x08;
while(W)
{
}
Согласно ДШ 3 й бит это указатель на то что был сброс по WDT.
|
Маска по 3-му биту запишется как W=MCUSR&0x04;
Или W = MCUSR & ( 1 ‹‹ 3 );