Свежие обсуждения
Микроконтроллеры

организация прерывания у pic16f84 RB0/INT

Приветсвую! Решил сделать прерывание у разработочки, но как организовать не знаю. Пишу на PICBasic pro. Мож кто подскажет как логически организовать, а я уж напишу сам, просто не знаю как и что подавать. Как я понимаю: настроить порт RB0 как вывод, и подавать на него лог "0", и сделать условие.
Хотел сделать проверкой кнопки, эхх жалко не подошло, надо прерывание. Прерывание внешшнеее, тоесть хочу поставить фототранзистор.

 

У вас после сброса выполнение программы начинается с адреса 0. А при наступлении прерывания - с адреса 4. Тоесть для основного кода использовать его в вашем случае нельзя. Давно не работал с пиками, но прога будет примерно следующей:

0001 goto RESET
0002 nop
0003 nop
0004 goto INT_HANDLE

RESET :
bsf INTCON, INTE
bsf INTCON, GIE

LOOP:
// основной цикл программы
goto LOOP

INT_HANDLE
// обработка прерывания
bsf INTCON, GIE
retfie

(Возможно коду требуется инициализация портов до включения прерываний)

 

Если вы не в курсе - все значения регистров сохраняюся после сброса.