Самодельный ИК-пульт дистанционного управления (PIC12F629)
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
а так в слип не уходит (а кнопки нажимаются и команды излучает)
http://dr-shost.com/files/ikrc5s2.asm
http://dr-shost.com/files/ikrc5s2.asm
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
Во-первых, вот эта команда:
перед формированием старшего байта пакета - лишняя, поскольку при старте все биты регистра INTCON итак сброшены в ноль. Если ты их не устанавливал, то и сбрасывать не надо.
Далее. Из даташита:
Код: Выделить всё
bcf INTCON,GIE
Далее. Из даташита:
То есть, перед тем, как уйти в sleep, - надо прочитать GPIO и сбросить флаг GPIF иначе контроллер из этого режима сразу выйдет.Когда бит глобального разрешения прерываний GIE сброшен в '0', а бит разрешения периферийных прерываний и соответствующий флаг прерывания установлен в '1', то микроконтроллер немедленно выйдет из режима SLEEP...
С уважением, администрация сайта.
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
в итоге код со слипом (ток в слипе 0.2мка примерно, м830 кончился) (4 кнопки, канал +_ и громкость +_):
http://dr-shost.com/files/629-rc5-sleep.zip
канал + на выводе 2, канал - на выводе 3, 4й вывод на +пит через 10к, 7й вывод - 4.7к на базу bc548c, его коллектор через 4.7 ом на ифк диод и на пит, эмиттер - в землю
вывод 6 - громкость -, вывод 5 - громкость + (ну и 1 - питание, 8 - земля, меж ними прямо к ногам 0.1мкф керамика)
кондер обычный с мамок (тонкий) 100мкфх16в 105 град
5 метров (далее комната кончилась) на 38кгц приемник и atmega8 с alps rk168:
http://dr-shost.com/files/mega8-remote.zip
в ду rc2032 одна
писк от восторга
http://dr-shost.com/files/629-rc5-sleep.zip
канал + на выводе 2, канал - на выводе 3, 4й вывод на +пит через 10к, 7й вывод - 4.7к на базу bc548c, его коллектор через 4.7 ом на ифк диод и на пит, эмиттер - в землю
вывод 6 - громкость -, вывод 5 - громкость + (ну и 1 - питание, 8 - земля, меж ними прямо к ногам 0.1мкф керамика)
кондер обычный с мамок (тонкий) 100мкфх16в 105 град
5 метров (далее комната кончилась) на 38кгц приемник и atmega8 с alps rk168:
http://dr-shost.com/files/mega8-remote.zip
в ду rc2032 одна
писк от восторга
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
права на файл атмеги починил (что то как исполняемый выдало архиву)
сорри
сорри
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
Здорово! Поздравляю.
По-моему вот так тоже должно работать:
Нам же главное, чтобы перед sleep флаг GPIF был сброшен, а после сна-то пофиг, программа же всё равно круг пройдёт и сбросит GPIF перед sleep.
GPIF можно будет сбросить, если GPIO будет соответствовать тому, что реально на ногах микрухи, а несоответствие можно устранить
просто командой чтения, не обязательно потом ещё и обратно записывать то, что прочитал.
Проверь, если есть возможность.
По-моему вот так тоже должно работать:
Код: Выделить всё
Scan 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 ;
bsf MBC,5 ; установить управляющий бит в 1 (первое нажатие)
movf GPIO,w
bcf INTCON,GPIF
sleep
nop
goto Scan ;
GPIF можно будет сбросить, если GPIO будет соответствовать тому, что реально на ногах микрухи, а несоответствие можно устранить
просто командой чтения, не обязательно потом ещё и обратно записывать то, что прочитал.
Проверь, если есть возможность.
С уважением, администрация сайта.
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
потом гляну, чипы кончились
а все сейчас сидит в таком корпусе
http://www.ebay.com/itm/Universal-Infra ... 2ec08a027c
их кляксу сверлом аккуратно снять, на ее место в so8 629й
(клякса легко теряет коды, и вбитый rc5 кривой там, так, игрушка (на каком то ресурсе народ писал - в универсальных пультах у них одни и те же кривые коды, кто то их так снял и друг у друга теперь копируют)
одно но - паяться тока к дорожкам, переходы типа угольных, от паяла кирдык сразу, ну и не трогать зону где батарейка вставляется: все делать вне ее
2032 нормально встает (вместо исходной 2025, можно и родную, конечно, оставить, но она пожиже)
а все сейчас сидит в таком корпусе
http://www.ebay.com/itm/Universal-Infra ... 2ec08a027c
их кляксу сверлом аккуратно снять, на ее место в so8 629й
(клякса легко теряет коды, и вбитый rc5 кривой там, так, игрушка (на каком то ресурсе народ писал - в универсальных пультах у них одни и те же кривые коды, кто то их так снял и друг у друга теперь копируют)
одно но - паяться тока к дорожкам, переходы типа угольных, от паяла кирдык сразу, ну и не трогать зону где батарейка вставляется: все делать вне ее
2032 нормально встает (вместо исходной 2025, можно и родную, конечно, оставить, но она пожиже)
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
добрый день
Я проверял программу на протеусе неправильно работает .
Я проверял программу на протеусе неправильно работает .
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
Бр, о какой программе речь, тут уже всяких версий полно (код в студию)? И что конкретно работает неправильно?
С уважением, администрация сайта.
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
прошу прошения . речь о Программа для самодельного ИК-пульта, протокол NEC (кодирование длиной паузы). спасибо разобрался я проверял на 12f675 . отключил АЦП и переключил аналоговые входы на цифровые заработало . как здесь можно сделать спящий режим . можно добавит в программу этот кусок?
bsf INTCON,GPIE
bcf INTCON,GIE
--------------------------------------
bcf INTCON,GPIF
movf GPIO,w
movwf GPIO
sleep
nop
bcf INTCON,GPIF
goto Scan
bsf INTCON,GPIE
bcf INTCON,GIE
--------------------------------------
bcf INTCON,GPIF
movf GPIO,w
movwf GPIO
sleep
nop
bcf INTCON,GPIF
goto Scan
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
Да мне кажется, даже если просто перед goto Scan sleep добавить, то будет работать.
Мы же когда из прерывания выходим - все флаги и прерывания сбрасываем. Проверь.
Мы же когда из прерывания выходим - все флаги и прерывания сбрасываем. Проверь.
С уважением, администрация сайта.