Re: Pic12F675 - как выйти из режима SLEEP
Причина "зависания" программы после выхода из режима SLEEP была в том, что СРАЗУ после выхода из режима SLEEP нужно было запретить прерывание по изменения состояния GP3.
BCF INTCON,PEIE ; Запрет обработки прерываний переферии
BCF INTCON,GPIF ; сброс флага прерывания для GPIO
BSF INTCON,GPIE ; разрешить прерывания при изменении на GPIO
BSF STATUS, RP0 ; Выбрать Банк1 для IOCB
CLRF IOCB ;
BSF IOCB,IOCB3 ; Разрешаем прерывания по изменению на GP3
BCF STATUS, RP0 ; Выбрать Банк0
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\
SLEEP ; Заснуть, проснуться по истечению времени 30 минут или при нажатии кнопки
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\
NOP ;
BCF INTCON,GIE ; Запрет всех прерываний
BSF GPIO,LEDB ; Включить синий светодиод
BCF FLAG1, SL_OFF ; Сбросить признак запрета вхождения в режим СОН (SLEEP)
BCF INTCON,GPIE ; Запретить прерывания при изменении на GPIO
BSF INTCON,GIE ; Разрешить прерывания
Последний раз редактировалось Архип; 17.08.2013 в 14:33.
|