Самодельный ИК-пульт дистанционного управления (PIC12F629)
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
10к на пит у -mclr
- кто не понял мало ли
- кто не понял мало ли
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
Последний пост - не понял.
А вообще, может питания маловато, из-за того и глюки. И ещё можно попробовать при инициализации прописать таки где нужны подтягивающие, а где - нет (хотя они после включения питания должны и так быть выбраны на всех входах, но групповой бит, который их включает должен быть установлен, так в доке написано) и защёлки не так инициализировать:
А вообще, может питания маловато, из-за того и глюки. И ещё можно попробовать при инициализации прописать таки где нужны подтягивающие, а где - нет (хотя они после включения питания должны и так быть выбраны на всех входах, но групповой бит, который их включает должен быть установлен, так в доке написано) и защёлки не так инициализировать:
Код: Выделить всё
bcf Status,5 ; перейти в банк 0
movlw b'11111110'
movwf GPIO ; инициализация защелок
movlw .7 ; биты 0..2 поднять
movwf Cmcon ; компар. выключен, GP0, GP1, GP2 - цифровые вх/вых
bsf Status,5 ; Перейти в 1-й банк
movlw b'11111110'
movwf 0x15 ; пишем b'11111110' в регистр WPU
bcf .1,7 ; разрешаем подтягивающие резисторы на входах
movlw .62 ; Записать конфигурацию GPIO в аккумулятор (W)
; .62=00 111110 GP0 - выход, остальные - входы
movwf TrisIO ; Скопировать конфигурацию GPIO из W в регистр TrisIO
bcf Status,5 ; Перейти в 0-й банк
С уважением, администрация сайта.
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
сейчас бы со sleep помогли, в тумане все
этот asm нашел в инете (629, внешн кварц на 2 и 3, кнопки на 4,7,6, выход на 5м выводе)
http://dr-shost.com/files/tx_629.asm
из него в тот, что пока работает, но нет слипа, пытаюсь переделать:
http://dr-shost.com/files/ikrc5-v2.asm
там как то надо кнопки (4 шт у меня) расписать, что бы из слипа выходила на тот майн цикла, как понимаю
гляньте, плиз
этот asm нашел в инете (629, внешн кварц на 2 и 3, кнопки на 4,7,6, выход на 5м выводе)
http://dr-shost.com/files/tx_629.asm
из него в тот, что пока работает, но нет слипа, пытаюсь переделать:
http://dr-shost.com/files/ikrc5-v2.asm
там как то надо кнопки (4 шт у меня) расписать, что бы из слипа выходила на тот майн цикла, как понимаю
гляньте, плиз
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
а hex отсюда взят, мало ли чего в инфе не хватает:
http://electronics-diy.com/electronic_s ... php?id=495
http://electronics-diy.com/electronic_s ... php?id=495
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
вот такой код
http://dr-shost.com/files/tx_629-v1.asm
в слип не уходит, но кнопы потеряли длит нажатие (не третий бит кода инверсия, а просто выдает разовую серию и в стоп, что бы еще отработало - повторно жать надо - неудобно
при компиляции тоько это
Message[302] 102 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] 103 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] 104 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] 105 : Register in operand not in bank 0. Ensure that bank bits are correct.
те, где то наврал со слипом
гляньте, плиз
http://dr-shost.com/files/tx_629-v1.asm
в слип не уходит, но кнопы потеряли длит нажатие (не третий бит кода инверсия, а просто выдает разовую серию и в стоп, что бы еще отработало - повторно жать надо - неудобно
при компиляции тоько это
Message[302] 102 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] 103 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] 104 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] 105 : Register in operand not in bank 0. Ensure that bank bits are correct.
те, где то наврал со слипом
гляньте, плиз
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
В main loop одна инструкция GOTO MAIN - лишняя. Мессаджи не опасны, это видимо из-за того, что адрес IOCB записан как 96h. Компилятор всё равно 80h отрежет и оставит 16h.
Я думаю тут сама концепция перехода в sleep-режим - неправильная. Нафиг в цикле каждый раз в sleep уходить. Надо запустить таймер и если нет нажатий в течении определённого времени после последнего нажатия - тогда в sleep. Из-за этого кнопы и потеряли длительное нажатие вероятнее всего.
Я думаю тут сама концепция перехода в sleep-режим - неправильная. Нафиг в цикле каждый раз в sleep уходить. Надо запустить таймер и если нет нажатий в течении определённого времени после последнего нажатия - тогда в sleep. Из-за этого кнопы и потеряли длительное нажатие вероятнее всего.
С уважением, администрация сайта.
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
Сейчас получается так: нажали кнопку -> произошла посылка -> вернулись в main loop -> ушли в sleep и повторной посылки нет, а выходим из sleep сразу как кнопку отпустили (это же тоже изменение уровня). В итоге всё выглядит так, как будто в sleep не уходит, но удержание кнопки не работает (чтоб алгоритм работал дальше, чтоб из сна выйти - надо кнопку отпустить).
Короче алгоритм надо менять, на такой, как я выше описал.
Короче алгоритм надо менять, на такой, как я выше описал.
С уважением, администрация сайта.
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
глупый вопрос - что означает такая запись?
movlw (1 << GPIE)
те, перевод этих 1<< в бинарный не понимаю
movlw (1 << GPIE)
те, перевод этих 1<< в бинарный не понимаю
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
<< - это сдвиг влево, а потом написано сколько раз надо сдвинуть
т.е. 1 << GPIE означает, что надо взять b'00000001' (1 в двоичной форме) и сдвинуть 3 раза влево (GPIE - это третий бит регистра INTCON, т.е. где-то в шапке программы наверняка есть запись GPIE equ .3 и компилятор все записи GPIE заменяет на число 3).
Т.е. получается, что movlw (1<<GPIE) = movlw (b'00000001' << 3) = movlw b'00001000'.
т.е. 1 << GPIE означает, что надо взять b'00000001' (1 в двоичной форме) и сдвинуть 3 раза влево (GPIE - это третий бит регистра INTCON, т.е. где-то в шапке программы наверняка есть запись GPIE equ .3 и компилятор все записи GPIE заменяет на число 3).
Т.е. получается, что movlw (1<<GPIE) = movlw (b'00000001' << 3) = movlw b'00001000'.
С уважением, администрация сайта.
Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)
а, спасибо (что нигде про это не нашел)
вот такое
http://dr-shost.com/files/ikrc5sl.asm
шикарно входит в слип (наконец я его увидел, 0.1-0.2 мка - это круто)
когда кнопки нажимаю, ток прыгает до 70мка (те, жизнь есть, но не доходит до посылок кода)
как бы сделать, при нажатии кнопы слалась посылка, как отпустили - в этот слип
там внизу исходника кусок кода чужого со слипом (выход из него по нажатию) - как приделать не пойму
вот такое
http://dr-shost.com/files/ikrc5sl.asm
шикарно входит в слип (наконец я его увидел, 0.1-0.2 мка - это круто)
когда кнопки нажимаю, ток прыгает до 70мка (те, жизнь есть, но не доходит до посылок кода)
как бы сделать, при нажатии кнопы слалась посылка, как отпустили - в этот слип
там внизу исходника кусок кода чужого со слипом (выход из него по нажатию) - как приделать не пойму