Самодельный ИК-пульт дистанционного управления (PIC12F629)
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
пробовал . со слеепом не получается . может поможете.
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
sleep
- Вложения
-
- РђСЂС…РёРІ ZIP - WinRAR.zip
- sleep
- (49.3 КБ) 629 скачиваний
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
Попробуй так (добавить строки, выделенные звёздочками, звёздочки, понятное дело, убрать):
и далее добавить:
Код: Выделить всё
Scan ***bsf INCON,3 ; чтоб флаг устанавливался при изменении уровня и можно было проснуться от нажатия***
btfss GPIO,5 ; если на входе GP5 низкий уровень - нажата клавиша 1
goto Tx_CMD1
btfss GPIO,2 ; если на входе GP2 низкий уровень - нажата клавиша 2
goto Tx_CMD2
btfss GPIO,4 ; если на входе GP4 низкий уровень - нажата клавиша 3
goto Tx_CMD3
btfss GPIO,1 ; если на входе GP1 низкий уровень - нажата клавиша 4
goto Tx_CMD4
sleep
goto Scan
Код: Выделить всё
Form_Com ...
...
***bcf INTCON,3 ; запретить прерывания от изменения уровня***
***bcf INTCON,0 ; сбросить флаг, который устанавливается от изменения уровня***
bcf INTCON,2 ; сбросить флаг переполнения таймера
bsf INTCON,5 ; разрешить прерывание от таймера
bsf INTCON,7 ; разрешить немаскированные прерывания
С уважением, администрация сайта.
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
пробовал . не выходит из режима слееп
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
А, ну правильно, мы кое-что забыли, вот он из слипа и не выходит. Не знает когда от каких ног выходить
Надо ещё где-нить при инициализации в регистре IOC записать от каких ног нас интересует установка флага GPIF.
Например, здесь:
Надо ещё где-нить при инициализации в регистре IOC записать от каких ног нас интересует установка флага GPIF.
Например, здесь:
Код: Выделить всё
;--- Настраиваем предделитель таймера ---
movlw b'00000101'; настройка предделителя 1:64, 64*256=16,384 мс
movwf OPT_REG
;************************
movlw b'00110110' ; нас интересует изменение уровня на ногах GP1, GP2, GP4, GP5
movwf IOC ; надо в шапке дописать IOC equ 16h
;************************
bcf Status,5 ; Перейти в 0-й банк
С уважением, администрация сайта.
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
не хочет работать
;--- Настраиваем предделитель таймера ---
movlw b'00000101'; настройка предделителя 1:64, 64*256=16,384 мс
movwf OPT_REG
movlw b'00110110'
movwf IOCB
bcf Status,5 ; Перейти в 0-й банк
;--- Настраиваем предделитель таймера ---
movlw b'00000101'; настройка предделителя 1:64, 64*256=16,384 мс
movwf OPT_REG
movlw b'00110110'
movwf IOCB
bcf Status,5 ; Перейти в 0-й банк
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
Не хочет работать как? Не уходит в сон или не выходит из сна?
С уважением, администрация сайта.
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
после запуска на первое нажатия кнопки работает . на следующий нажатии на кнопку нет никаких реакции. наверно не выходит из слеепа.
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
Значит теперь первый раз выходит, а потом не выходит. Ок, тогда мы пойдём другим путём.
В первоначальной программе добавить этот кусок, как и раньше:
А включение просыпания от клавиш вставить на выходе из обработчика, а не при инициализации. То есть выход из прерывания сделать таким:
В первоначальной программе добавить этот кусок, как и раньше:
Код: Выделить всё
Form_Com ...
...
***bcf INTCON,3 ; запретить прерывания от изменения уровня***
***bcf INTCON,0 ; сбросить флаг, который устанавливается от изменения уровня***
bcf INTCON,2 ; сбросить флаг переполнения таймера
bsf INTCON,5 ; разрешить прерывание от таймера
bsf INTCON,7 ; разрешить немаскированные прерывания
Код: Выделить всё
Send_end
clrf INTCON ; сбрасываем все прерывания и флаги
call Pause ; выдерживаем паузу
movf GPIO,0
clrf INTCON ; сбрасываем все прерывания и флаги
bsf Status,5
movlw b'00110110' ; нас интересует изменение уровня на ногах GP1, GP2, GP4, GP5
movwf IOC ; надо в шапке дописать IOC equ 16h
bcf Status,5
bsf INTCON,3
goto Scan ; переходим к сканированию клавиш
С уважением, администрация сайта.
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
Добавил эти строки . без изменения после первого нажатия перестало работать . у меня было добавлено после шапки строки : org 0
; goto st
; org 4
; nop
; retfie
;st
отключил эти строки вроде заработало в протеусе . завтра попробую проверит на камне. спасибо вам за поддержку . и можете объяснит почему не работало программа с этими строками
; goto st
; org 4
; nop
; retfie
;st
отключил эти строки вроде заработало в протеусе . завтра попробую проверит на камне. спасибо вам за поддержку . и можете объяснит почему не работало программа с этими строками