программа входит в LPM4. При нажатии клавиши происходит выход из LPM4. Но т.к. XTAL1 не может сразу запуститься, это приводит к обработке ошибки запуска XTAL1. И по вектору обработки ошибки снова происходит его настройка.
Код
;вектора
ORG 0xFFFE
DC16 init ;
ORG 0xFFFC
DC16 error_
ORG 0xFFE4 ;
DC16 P1_IO
init:
;настройки регистров....
bis.b #_key,&P1OUT ;
bis.b #_key,&P1REN ;P1.5 pullup
bis.b #_key,&P1IES ;P1.5 hi/low edge
;запуск XTAL1
call #on_XTAL1
eint
main:
bic.b #_key,&P1IFG;P1.5 IFG Cleared
bis.b #_key,&P1IE;P1.5 Interrupt enabled
bis #LPM4,SR ;LPM4
nop
jmp main
;обработка нажатия клавиши
P1_IO:
bic #LPM4,0(SP);LPM4
bic.b #_key,&P1IFG
reti
;ошибка XTAL1
error_:
call #on_XTAL1
reti
ORG 0xFFFE
DC16 init ;
ORG 0xFFFC
DC16 error_
ORG 0xFFE4 ;
DC16 P1_IO
init:
;настройки регистров....
bis.b #_key,&P1OUT ;
bis.b #_key,&P1REN ;P1.5 pullup
bis.b #_key,&P1IES ;P1.5 hi/low edge
;запуск XTAL1
call #on_XTAL1
eint
main:
bic.b #_key,&P1IFG;P1.5 IFG Cleared
bis.b #_key,&P1IE;P1.5 Interrupt enabled
bis #LPM4,SR ;LPM4
nop
jmp main
;обработка нажатия клавиши
P1_IO:
bic #LPM4,0(SP);LPM4
bic.b #_key,&P1IFG
reti
;ошибка XTAL1
error_:
call #on_XTAL1
reti
Может есть другой способ выхода из LPM4 при использовании внешнего кварца для XTAL1?