камень 16f628a
Пытаюсь вникнуть в работу прерываний, в сети очень мало информации с примерами на PBP. Написал следующий код, в задумке он должен работать следующим образом: при запуске контроллера начинает мигать светодиод на выводе A2, а по нажатию кнопки на выводе B0, должен сменить свое состояние светодиод подключенный к выводу A3.
Code
TRISA = %00000000
PORTA = %00000000
TRISB = %11111111
PORTB = %00000000
Option_Reg.7=0
ON INTERRUPT GOTO myint ' При возникновении прерывания перейти на метку - myint
INTCON = %10010000 ' Включить прерывание по выводу RB0
main:
PORTA.2 = 1
Pause 500
PORTA.2 = 0
Pause 500
goto main
DISABLE ' Отключить обработку прерываний
myint:
toggle PORTA.3 ' Включить/выключить LED при возникновении прерывания
RESUME ' Вернуться в основную программу
ENABLE
но в Proteus происходит следующее: при запуске контроллера начинает мигать светодиод на выводе A2, а по нажатию кнопки на выводе B0, начинает мигать светодиод подключенный к выводу A3, как будто подпрограмма выполняется при каждом проходе основной программы. Где я не прав?