реклама на сайте
подробности

 
 
> рекурсивное прерывание, Как оно из себя выглядит?
ytkopobot
сообщение Feb 19 2009, 11:16
Сообщение #1





Группа: Новичок
Сообщений: 11
Регистрация: 2-06-08
Пользователь №: 38 002



Надо реализовать по нажатию на кнопочку рекурсивное прерывание.
Не совсем представляю как из обычного сделать рекурсивное? То есть чтоб могло само себя прерывать..
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Палыч
сообщение Feb 19 2009, 13:23
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Стоп! Кажется, выше - наврал... В голове перепутались МК51 и AVR... Если в очередной раз не путаю - в МК51 есть внутренний, недоступный стек уровня прерывания, который не даёт прервать свою же процедуру обработки прерывания. Тогда - выход один: имитация выхода из прерывания по IRET с целью перехода системы прерывания МК на более низкий уровень. Получится - геморой... Нужно затолкнуть в стек адрес той части обработчика, где будет обрабатываться прерывание уже при разрешенном прерывании; и выполнить IRET. По IRET Вы заставите систему прерывания понизить уровень прерывания и перейти на процедуру обработки, из которой выходить нужно уже не по IRET, а по RET...
Т.е. что-то такое:
Код
;Обработчик прерывания
;Сохранение PSW, ACC, других регистров
  push PSW
  push A
  .....
  mov A, #LOW Continue
  push A
  mov A, #HIGH Continue
  push A
  iret
;Продолжение обработки прерывания
Continue:
; Что-то там выполняем
  .....
;Восстановление регистров, ACC, PSW
  .....
  pop A
  pop PSW
  ret
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 18:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01378 секунд с 7
ELECTRONIX ©2004-2016