Микроконтроллеры | Никак не могу запустить прерывание MSC-51, TASM |
|
---|---|---|
AHTOXA, в таком виде работает так как и задумывалось, т.е правильно. а можно поподробнее обьяснение? к стати, работает правильно и без сброса флага в обработчике |
|
|
Подробнее (смотри по порядку шагов): INCYCLE: MOV R3,#0 CYCLE: CJNE R3,#0AAH,CYCLE CLR HEARTBEAT LCALL DELAY SETB HEARTBEAT SETB EX0 AJMP INCYCLE |
|
|
Cheeeper: к стати, работает правильно и без сброса флага в обработчике |
|
|
спасибо |
|
|
Но по-хорошему, надо всё же чистить IE0 перед разрешением прерывания. |
|
|
внутри обработчика прерывания никогда не нужно запрещать его! пока обработчик не отработает, новое прерывание того же типа не возникнет и так. |
|
|
ARV: внутри обработчика прерывания никогда не нужно запрещать его! пока обработчик не отработает, Почему это? Если так надо по логике программы? Например, декодирование RC5 - ловим первый спад, а дальше - по таймеру. Где кроме как в обработчике отключать? ARV: новое прерывание того же типа не возникнет и так Очень даже возникнет. Например, если прерывание не по фронту, а по уровню. Пока будет уровень - будет постоянно вызываться прерывание. То есть, после выхода из прерывания будет выполняться одна команда, а потом - снова в прерывание. Это кстати использовалось для пошаговой трассировки. |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |