При запуске бутлодера неплохо бы сигнализировать об этом пользователю. Хорошо когда в устройстве есть светодиод. Но ряд ограничений толкает нас на некоторые извращения.
- Использовать прерывание таймера не можем
- Сильно ограничены по размеру кода
- Мигать должны на фоне основной задачи
Поступаем так: запускаем таймер-счетсик в режиме простого счета
#include "iom88.h"
//ports init
sbi LED_DDR,LED_PIN // out for led
//timer init
ldi temp,(1<<CS12) //timer setup (clk/256)
out TCCR1B,temp
В основном цикле бутлодера отслеживаем состояние определенного бита нашего счетчика, включаем светодиод синхронно с этим битом.
#include "iom88.h"
in temp,TCNT1L //ВНИМАНИЕ! Хотя мы анализируем только старший байт таймера,
//мы обязаны прочитать младшую его половину.
in temp,TCNT1H
sbrc temp,4
cbi LED_PORT,LED_PIN
sbrs temp,4
sbi LED_PORT,LED_PIN
Комментариев нет:
Отправить комментарий