fl
МИКРОКОНТРОЛЛЕРЫ
[}
pinb_int:
ocrla_int:
ovll_int:
eeprom_int:
compare_int:
adc_int:
reti
Описание автоматной таблицы
db
27,
0
; Первый байт - число строк в таблице.
db
0,
BUTTON ON,
1,
START 20MSEC
db
1,
TIMEOUT,
2,
STOPJTIMERITURNON LED
db
1,
BUTTON OFF,
0,
STOPJTIMER
db
2,
BUTTON OFF,
3,
START_2 0MSEC
db
3,
TIMEOUT,
8,
START_05SEC
db
3,
BUTTON_ON,
2,
STOPJTIMER
db
4,
BUTTON ON,
5,
START 20MSEC
db
5,
TIMEOUT,
14,
STOPJTIMER|START 05SEC
db
5,
BUTTON_OFF,
4,
STOPJTIMER
db
6,
BUTTON_OFF,
7,
START
J20MSEC
db
7,
TIMEOUT,
0,
STOPJTIMER
db
7,
BUTTON_ON,
6,
STOPJTIMER
; Отработка двойного щелчка кнопки.
db
8,
TIMEOUT,
4,
STOP TIMER
db
8,
BUTTON ON,
9,
START 20MSEC
db
9,
BUTTON OFF,
8,
STOPJTIMER
db
9,
TIMEOUT,
О
н
STOPJTIMER
db
О
H
BUTTON_OFF,
11,
START_2 0MSEC
db
11,
BUTTON ON,
о
н
STOP TIMER
db
11,
TIMEOUT,
12,
START 10SEC
db
12,
TIMEOUT,
13,
STOP TIMER|TURNOFF LED|START 10SEC
db
13,
TIMEOUT,
СМ
н
STOPJTIMER|TURNON_LED|START_10SEC
db
CM
H
BUTTON_ON,
5,
STARTJ20MSEC
db
13,
BUTTONJDN,
5,
START 20MSEC
; Отработка изменения яркости.
db
14,
BUTTON OFF,
7,
STOP TIMER|TURNOFF LED|START 20MSEC
db
14,
TIMEOUT,
15., STOPJTIMER|START 20MSEC
db
15,
TIMEOUT,
15,
STOPJTIMERISTART_20MSEC|CHANGE
J3RIGHT
db
15,
BUTTON
J)FF, 3,
STOPJTIMER|START 20MSECI CHANGEJSIGN
Вот таким способом - через сим-
вол (I), - и задаются несколько дей-
ствий в байте с кодами программ
выхода. Сами коды программ выхо-
да должны определяться при этом
так, чтобы код содержал, во-пер-
вых,
только один
единичный бит, и,
во-вторых, чтобы эти биты у про-
грамм
не пересекались.
Выполнять-
ся эти программы будут не в том по-
рядке, в котором они записаны в таб-
лице, а в том, в котором определе-
ны (сначала - программа с кодом
0x01, затем - с кодом 0x02 и т.д.),
так что при назначении им номера
нужно этот момент продумать зара-
нее. Например, судя по последней
строчке нашей таблицы, код подпрог-
раммы 8ТОР_Т1МЕР явно должен
быть меньше кода подпрограммы
8ТАРТ_20М8ЕС, иначе только что
запущенный по 8ТАРТ_20М8ЕС тай-
мер будет тут же остановлен подпрог-
раммой 8ТОР_Т1МЕР, чего мы вов-
се не собирались делать.
Прежде чем продолжить даль-
ше, автор считает необходимым
прояснить один вопрос. Целью это-
го цикла статей является дать общее
представление о программировании
микроконтроллеров ATTiny (в том
числе и разбор конкретных приме-
ров), а не обучение читателя работе
в той или иной среде программиро-
вания. Поэтому далее просто будет
дан список действий, которые требу-
ется проделать для того, чтобы зане-
сти программу в микроконтроллер,
но не будет описано, как именно это
делается. По AVR Studio и иным сре-
дам программирования существует
масса литературы, конференций и
форумов, которые нет смысла дуб-
лировать, да и ничего архисложного
в этих средах программирования
58
У
Радиолюбитель - 0 8 /2 0 0 7
предыдущая страница 58 Радиолюбитель 2007-08 читать онлайн следующая страница 60 Радиолюбитель 2007-08 читать онлайн Домой Выключить/включить текст