і
МИКРОКОНТРОЛЛЕРЫ
1
Ниже приведен вариант реализации указанного приема для случая “совпадают”. Предполагается, что ре-
гистр #А содержит адрес 40И, а регистр #В -
0 0
И:
$
1
:
movl
%Ь4,
ооооооооь
; Подключить младший байт счетного регистра.
точі
%Ь4 , ОООООЮОЬ
; Подключить старший байт счетного регистра.
тс^
%а0,%Ь5
; Считать младший байт
точі
%Ь4,ООООООООЬ
; Подключить младший байт счетного регистра.
тс^
%а1,%Ь5
; Считать старший байт
точі
%Ь4, ОООООЮОЬ
; Подключить старший байт счетного регистра.
стр
%а0,%Ь5
; Сравнить младшие байты
$1
; Младшие байты отличаются - перечитать данные
стр
%а1,%Ь5
; Сравнить старшие байты.
$1
; Старшие байты отличаются: - перечитать данные
Обратите внимание - за счет “расслоения” команд
записи в управляющий регистр и чтения из рабочего ре-
гистра
другими
командами нам удалось написать это
фрагмент без единой команды
пор!
Именно об этом и
А вот - вариант реализации на случай “не слишком отличаются”:
ШОЧІ
%Ь4,
ооооооооь
; Подключить младший байт счетного регистра.
ШОЧІ
%Ь4, ОООООЮОЬ
; Подключить старший байт счетного регистра.
шоч
%а0,%Ь5
г
Считать младший байт
шоч
%а2,%а0
; Продублировать его
шоч
%а1,%Ь5
; Считать старший байт
ШОЧІ
%Ь4,ООООООООЬ
; Подключить младший байт счетного регистра.
ЩОЧ
%аЗ,%а1
; Продублировать его
ШОЧІ
%Ь4, ОООООЮОЬ
г
Подключить старший байт счетного регистра.
зиЬ
%а2,%Ь5
г
Вычесть младшие байты
зЬс
%аЗ
; Распространить перенос.
зиЬ
%аЗ,%Ь5
г
Вычесть старшие байты.
сшрі
%а2,-5
; Сравнить результат (он всегда - ■со знаком минус)
; с допустимым расхождением (в данном примере - 5).
із
$1
г
Расхождение больше допустимого - перечитать показания
шла речь в разделе, посвященном работе конвейера ко-
манд (попытайтесь проанализировать этот фрагмент
кода и разобраться в логике его работы).
Описанную технику работы можно применять не только
по отношению к таймеру, но и к любому другому ресурсу
(например, устройству, подключенному к порту микроконт-
роллера), обращение к которому происходит
по частям,
и
который может при этом изменяться в процессе обраще-
ния. Для ресурсов, доступ к которым является
атомарным
(т.е. выполняется ровно за один шаг или одну команду),
применение указанной техники
не требуется.
ВМЕСТО ЗАКЛЮЧЕНИЯ
Основной технологией программирования микроконтроллеров является автоматное программирование. Автомат - понятие
отнюдь не новое, оно зародилось почти одновременно с зарождением вычислительных машин. Что такое автомат с точки
зрения математики, радиолюбитель может познакомиться в великолепной книге [
1
], которая, несмотря на сложность разби-
раемых в ней вопросов, написана очень понятным языком и читается с легкостью художественной литературы. Удивительно,
но при самом широком распространении автоматов, выполненных “в железе”, в программировании они долгое время приме-
нялись исключительно в одном, узкоспециализированном качестве - как автоматы-распознаватели. Основное отличие авто-
мата-распознавателя от управляющего автомата - пустота множества выходных символов Л, т.е. этот автомат при работе не
вносит изменений в “окружающую сред/’. Именно в таком качестве автомат применяется во всех компиляторах (радиолюби-
тель уже знаком с одним из них - это компилятор (ввва, преобразующий ассемблерную программу в загрузочный файл). Тем
не менее, даже в этом качестве в автомате-распознавателе широко применялись программы выхода (выходные символы),
например, в [2], стр.183, приведена автоматная таблица, практически идентичная той, которой мы пользуемся при реали-
зации автомата с помощью интерпретатора. Применять программно реализованные автоматы для целей управления на-
чали в 70-х.
..80-х годах прошлого века. В этом плане рекомендуем радиолюбителям весьма полезную книгу [3], в которой,
1
41
Радиолюбитель - 0 9/2 0 06 1
предыдущая страница 41 Радиолюбитель 2006-09 читать онлайн следующая страница 43 Радиолюбитель 2006-09 читать онлайн Домой Выключить/включить текст