Мартин Гомез

   Преобразование конечного автомата в программу может быть достаточно простым, если вы будете следовать советам опытного практика.
 
   Многие программы для встраиваемых систем зачастую лучше всего реализуются в виде  конечного автомата. К таким программам можно отнести приложения выполняющие последовательность действий и приложения обрабатывающие входные сигналы в зависимости от режима. 
 
   Эта статья описывает простой подход к созданию конечных автоматов для встраиваемых систем. За последние 15 лет я применял данный подход при разработке  нескольких десятков систем, включая пользовательский интерфейс, коммуникационные протоколы,  механизм транспортировки кремниевых пластин и программное обеспечение для беспилотных летательных аппаратов.
   Написал программный модуль, позволяющий добавить функцию воспроизведения мелодий или последовательностей звуков практически в любой проект на микроконтроллере AVR. 
 
Особенности модуля:
 
- простая интеграция с готовым проектом 
- задействован только 8-ми разрядный таймер т2, при этом остается возможность использовать его для опроса или формирования временных интервалов
- модуль настраивается практически на любую частоту тактового генератора
- высота нот задается в виде символических констант (С0, А2 и т.д) или в Герцах 
- длительности задаются в стандартном виде (четверти, восьмые и т.д.) или в миллисекундах
- имеется возможность задавать темп воспроизведения мелодии и количество ее повторений
- в процессе воспроизведения мелодия может быть поставлена на паузу
   
 
 
  
   В одной из предыдущих статей, посвященных изучению микроконтроллеров AVR, на примере проекта частотомера мы рассмотрели использование 16-ти разрядного таймера/счетчика Т1 и прерывания по событию захват. В качестве дополнения к этому материалу, предлагаю улучшенную версию частотомера. В этом проекте тоже используется блок захвата и дополнительно еще задействован тактовый вход 8-ми разрядного таймера. 
 
 
 
  Мысль о разработке этого устройства посетила меня, когда, очередной раз заходя вечером в подъезд, я задумался, а почему свет в подъезде горит всю ночь? Для кого?
   А что если поставить такое устройство автоматики, которое бы включало освещение при входе в подъезд автоматически или при инициации этого устройства человеком. Например, посредством кнопки или размыкания контактов геркона, установленного на входной двери. А по прошествии определенного времени, когда человек уже вошел в квартиру, само бы выключало его. Ведь тема экономии электроэнергии так актуальна в наше время!
 
 
 
 
 
   Переходим от теории к практике. Наша задача — получить от датчика DS18B20 значение текущей температуры и вывести его на символьный lcd дисплей. 
Страница 22 из 37