По заданной программе изменяется яркость светодиодов.
Изменение яркости осуществляется широтно-импульсной модуляцией (ШИМ).
Так как яркость светодиодов от значения ШИМ меняется не линейно,
для каждого уровня яркости эмпирически подобрано значение ШИМ.
Всего реализовано 16 уровней яркости. Частота ШИМ примерно 22 кГц.
Светодиоды, через ключи подключены к выводам порта B микроконтроллера.
Тактовый генератор, используется внутренний - 4 МГц.
Прерывания каждые 65 мс (квант времени, одна страница), при 4 МГц.
При 16 значениях ШИМ`а - 1 байт в таблице - 2 светодиода.
Полное значение для 8 светодиодов - 4 байта в таблице - 1 страница.
При 1527 ячеек под таблицу - 381 страница - ~50 сек длительность
всей программы.
В файле pwm.h в таблице (retlw 0x00) храняться значения
яркости светодиодов. Порядок значений страниц :
Byte0 старший нибл - Led0, младший нибл - Led1
Byte1 старший нибл - Led2, младший нибл - Led3
Byte2 старший нибл - Led4, младший нибл - Led5
Следующая страница :
Byte3 старший нибл - Led0, младший нибл - Led1
и т.д.
Исходник на ассемблере и тестовая прошивка
Вы не можете скачивать файлы с нашего сервера