У
МИКРОКОНТРОЛЛЕРЫ
|Р— -
Первая программа
для
ATMEGA128
Александр Черномырдин
г. Магнитогорс!
E-mail:
chav1961@radioliga.con
Наша первая программа для микроконтроллера
АТМеда128, по сложившейся уже традиции, будет связа-
на с автоматным программированием и виртуальными
устройствами.
Допустим, что к порту А микроконтроллера подклю-
чены 8 кнопок, а к порту В - 8 светодиодов. Каждый све-
тодиод управляется одной кнопкой (соответствие между
светодиодами и кнопками - позиционное). Алгоритм уп-
равления устройством следующий:
при кратковременном нажатии кнопки соответству-
ющий ей светодиод включается. При повторном кратков-
ременном нажатии светодиод выключается.
если при горящем светодиоде нажать и удержи-
вать кнопку, яркость свечения светодиода начинает
увеличиваться до тех пор, пока кнопка не отпущена (либо
до максимально возможной - смотря что произойдет
раньше). При повторном нажатии и удержании кнопки
яркость свечения светодиода начинает уменьшаться до
тех пор, пока кнопка не отпущена (либо до полного по-
гасания светодиода). Будем считать, что при включении
устройства все светодиоды настроены на “половинную"
яркость свечения.
если при погашенном светодиоде выполнить двой-
ной щелчок кнопки, светодиод включается в режим ми-
гания. Повторное нажатие кнопки при мигающем свето-
диоде выключает светодиод. В режиме мигания яркость
/ /
/ /
/ /
П
И
I
светодиода изменять не нужно - она должна остатьс*
такой, какой была при последнем включении.
Разработку графа переходов автомата для реализа
ции алгоритма работы оставляем читателю в качестве
домашнего задания, в статье же мы будем пользоватьс*
уже готовой автоматной таблицей.
Прежде, чем начать описание программы, реализу
|
ющей наше устройство, следует сделать несколько ввод
!
ных замечаний. Язык С, на котором будет написана наше
|
программа, практически невозможно изложить даже е
|
очень большой журнальной статье. Автор даже не бу
дет пытаться это делать. Будет очень хорошо, если чи
татели сами найдут описание языка С, и хотя бы беглс
его просмотрят, благо этих описаний -сейчас полным
полно и в бумажном, и в электронном виде. Все конст
рукции языка, использованные в программе, автор бу
дет вводить “явочным” порядком, и сопровождать
Д ОС
таточно подробными комментариями. Будем надеяться
что их объем окажется “разумно достаточным”. В каче
стве среды разработки, как было сказано в предыдущи>
статьях, будет использован \МпАУР вСС, но это ни
е
коем разе не означает, что никаких других средств раз
работки для работы с АТМеда128 использовать невоз
можно.
Итак, вот с чего начинается программа, реализующая
наше устройство:
(с)
2008, Л.В. Черномырдин. Первая программа для АТМеда.
#include "a v r/io .h "
#include " a v r /in te r r u p t.h"
#include "a v r/s le e p .h "
#include < s td lib .h>
#include < std io .h >
/ /
/ /
Виртуальные устройства, терминальные символы и программы выхода для автоматов.
/ /
#d e fin e
TIMEOUT
1
#d e fin e
BUTTONJON
2
»define
BUTTON OFF
3
Обратите внимание на две конструкции, введенные
явочным порядком -
комментарии
и
препроцессорные
директивы.
Комментарии в языке С бывают двух ви-
дов - однострочные, подобные ассемблерным (кото-
рые начинаются специальным знаком и продолжаются
до конца текущей строки), и многострочные, которые
и начинаются, и заканчиваются специальным знаком
(поэтому могут занимать более чем одну строку). Од-
нострочные комментарии в языке С начинаются двумя
подряд идущими символами “//”. Многострочные коммен-
тарии начинаются символами
а заканчиваются сим-
волами
Какой тип комментариев использовать - по
^Радиолюбитель - 1
1
2008
предыдущая страница 38 Радиолюбитель 2008-11 читать онлайн следующая страница 40 Радиолюбитель 2008-11 читать онлайн Домой Выключить/включить текст