Микроконтроллеры | Никак не могу запустить прерывание MSC-51, TASM |
|
---|---|---|
Прошу прощения за смешной для кого-то вопрос. не могу никак правильно запустить и обработать прерывание от входа т.е. /int0 в приложении асм и бинарник. работает, но только один раз, первый после сброса. должно каждый раз зажигать светик heartbeat (низким уровнем) при отлавливании спада на входе /int0. Где я ошибся??? |
|
|
бинарник не прицепился |
|
|
не разбираясь...а флаг сбрасываете? |
|
|
по идее флаг должен сброситься сам при переходу на обработку прерывания, (шепотом: вот так CLR IE0 ? ) вопрос только где ? |
|
|
да нет...по идее флаг надо сбросить при выходе из прерывания... |
|
|
Да не, в 51х флаг сам. |
|
|
надо CLR IE0 вставить в код обработчика прерывания.. |
|
|
ща попробую... |
|
|
увы... исправленный код - в приложении обработка прерывания выглядит так: ; External INTERRUPT /INT0 CAMSWINT: CLR EX0 ;INT0 disabled MOV R3,#0AAH RETI результат аналогичен, только первый раз срабатывает. |
|
|
Странно... Ну разве что: INCYCLE: MOV R3,#0 SETB EX0 - вставить здесь CYCLE: CJNE R3,#0AAH,CYCLE CLR EX0 CLR HEARTBEAT LCALL DELAY SETB HEARTBEAT SETB EX0 -- это убрать AJMP INCYCLE А то может сначала возникнуть прерывание, а потом произойти запись 0 в R3... |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |