{
МИКРОКОНТРОЛЛЕРЫ
і
Итак,
int 1 :
$2:
$1:
$3:
$5:
$4:
exit:
42 I-
вот как выглядит обработчик прерываний от сторожевого таймера:
push
#A
push
#C
push
#4
push
#5
push
#6
push
#7
Сохранить регистры.
<1> Опрос текущего состояния матрицы клавиатуры. Опрос ведется побайтно - так проще
в реализации
; Сегмент #А - адрес рабочей области программы
; Состояние автомата = О?
; Нет.
..
; Да - считать текущий образ и сравнить его с предыдущим.
; Образы совпали.
..
; Новое состояние автомата = 1
; ШО - адрес исходного образа.
; т1 - адрес приемного образа.
; Занести предыдущий образ в эталонный.
ldr
cmpl
jnz
jsr
jnc
movl
ldr
ldr
jsr
ldr
ldr
jsr
jmp
#A,68h
%a4,0
$1
getAndTest
exit
%a4,1
#4,50h
#6,60h
moveImage
#4,58h
#6,50h
moveImage
exit
Занести текущий образ в предыдущий.
<2> Ожидание успокоения клавиатуры
jsr
getAndTest
je
$2
ldr
#4,5Oh
ldr
# 5,AUTOINCREMENT
ldr
#6,60h
ldr
# 7,AUTOINCREMENT
movl
%a0,8
xor
%d7,%d6
subi
%a0,1
jnz
$3
movl
%a4,0
<3> Формирование терминальных символов
Считать текущий обрав и сравнить его с предыдущим.
Образы еще не совпадают - переписать техущий образ
в предыдущий.
тО - адрес предыдущего (он совпадает с текущим) образа.
ті - адрес эталонного образа.
обработать надо 8 байт.
Определяем изменившиеся кнопки.
Вычесть счетчик цикла.
Вновь сменить состояние автомата на 0.
movl
%а0,63
ldr
#5,AUTOINCREMENT
ldr
#4,58h
mov
%al,%aO
shiftlmage
%al
shiftlmage
$4
automat
%a0,1
$5
Требуется обработать 64 бита.
Загружаем в IRO адрес битов состояния. Сдвигаем биты с конца
образа - так будет проще формировать терминал.
Формируем в %а1 очередной терминал.
Теперь сдвигаем бит состояний.
Забираем бит состояния в терминал
А теперь сдвигаем биты изменений.
Эта кнопка НЕ изменилась — автомат вызывать НЕ надо.
Вычесть счетчик цикла.
D sr
rlc
jsr
jnc
jsr
subi
jns
<4> Замена эталонного образа текущим.
ldr
#4,50h
; IRO - адрес исходного образа,
ldr
#6,60h
; IR1 - адрес приемного образа.
jsr
move Image
; Занести предыдущий образ (совпадает с текущим) в эталонный.
Завершение работы обработчика
pop
#7
pop
#6
pop
#5
pop
#4
I
Радиолюбитель - 05/2006
предыдущая страница 43 Радиолюбитель 2006-05 читать онлайн следующая страница 45 Радиолюбитель 2006-05 читать онлайн Домой Выключить/включить текст