После переделанных раз пять шаблонов, наконец-то родился такой вариант который меня устроил.
На страничке шаблонов
http://www.getchip.net/templates/ (теперь страничка видна в главном меню блога) можно скачать первую версию шаблона для Тини2313. После того как обкатаю для этого МК все модули (плюс дополнительные) будут перенесены на тини13 и мега328 (можно и на другие МК - потом видно будет)
Пока базовый набор модулей следующий:
- IR_Detect
Модуль принимает и обрабатывает ИК-посылки с любого бытового пульта посредством интегрального приемника TSOP4836 (или подобного)
Модуль умеет запоминать произвольное количество кнопок и выполнять заданные действия по их нажатию
- Wait
Модуль формирует задержки в программе
- LED
Модуль управляет индикаторным светодиодом
- RND
Модуль формирует случайное число
- Math
Реализует математические операции (на данный момент - умножение и деление)
- PWM_Out
Модуль формирует ШИМ-сигнал на произвольных ногах МК
- EX_Key
Модуль обрабатывает произвольное количество кнопок на любых ногах МК.
Подавляет дребез контактов.
Позволяет выполнять действия как по нажатию кнопки, так и по ее отпусканию или удерживанию.
- UART
Модуль выдает и принимает сообщения UART.
Реализованы выдачи строк в UART как напрямую указанных в вызове подпрограммы, так и по метке во Flash или в качестве переменной в SRAM.
Реализованы приемный и исходящий буферы (модуль работает в прерываниях как на прием строки так и на передачу - не останавливая процессов основной программы).
Модуль умеет отправлять в UART числовые значения в виде строки в десятичном, двоичном или шестнадцетеричном формате.
- BTimer
Модуль реализует произвольное количество независимых таймеров широких промежутков времени (от миллисекунд до суток)
Готов модуль для создания меню (его осталось опробовать в железе). Вышел тяжеловат как для тини2313, но зато очень легок в построении меню и его функционировании.
Вот так выглядит 3х уровневое меню (кроме этой структуры ничего дополнительно в модуле не нужно править - все заработает само)
sshot-1.png [ 20.33 КБ | Просмотров: 26772 ]
На очереди модуль LCD (если кто меня не опередит)

З.Ы. Обязательно прочитайте readme.txt для того чтобы понять как построены и функционируют модули