Самодельный ИК-пульт дистанционного управления (PIC12F629)

Здесь обсуждаем устройства на МК и программы для них
sshost
Читатель
Читатель
Сообщения: 23
Зарегистрирован: 01 янв 2013, 19:01

Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)

Сообщение sshost »

10к на пит у -mclr
- кто не понял мало ли
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)

Сообщение rhf-admin »

Последний пост - не понял.
А вообще, может питания маловато, из-за того и глюки. И ещё можно попробовать при инициализации прописать таки где нужны подтягивающие, а где - нет (хотя они после включения питания должны и так быть выбраны на всех входах, но групповой бит, который их включает должен быть установлен, так в доке написано) и защёлки не так инициализировать:

Код: Выделить всё

      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-й банк
С уважением, администрация сайта.
sshost
Читатель
Читатель
Сообщения: 23
Зарегистрирован: 01 янв 2013, 19:01

Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)

Сообщение sshost »

сейчас бы со 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 шт у меня) расписать, что бы из слипа выходила на тот майн цикла, как понимаю
гляньте, плиз
sshost
Читатель
Читатель
Сообщения: 23
Зарегистрирован: 01 янв 2013, 19:01

Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)

Сообщение sshost »

а hex отсюда взят, мало ли чего в инфе не хватает:
http://electronics-diy.com/electronic_s ... php?id=495
sshost
Читатель
Читатель
Сообщения: 23
Зарегистрирован: 01 янв 2013, 19:01

Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)

Сообщение sshost »

вот такой код
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)

Сообщение rhf-admin »

В main loop одна инструкция GOTO MAIN - лишняя. Мессаджи не опасны, это видимо из-за того, что адрес IOCB записан как 96h. Компилятор всё равно 80h отрежет и оставит 16h.
Я думаю тут сама концепция перехода в sleep-режим - неправильная. Нафиг в цикле каждый раз в sleep уходить. Надо запустить таймер и если нет нажатий в течении определённого времени после последнего нажатия - тогда в sleep. Из-за этого кнопы и потеряли длительное нажатие вероятнее всего.
С уважением, администрация сайта.
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)

Сообщение rhf-admin »

Сейчас получается так: нажали кнопку -> произошла посылка -> вернулись в main loop -> ушли в sleep и повторной посылки нет, а выходим из sleep сразу как кнопку отпустили (это же тоже изменение уровня). В итоге всё выглядит так, как будто в sleep не уходит, но удержание кнопки не работает (чтоб алгоритм работал дальше, чтоб из сна выйти - надо кнопку отпустить).
Короче алгоритм надо менять, на такой, как я выше описал.
С уважением, администрация сайта.
sshost
Читатель
Читатель
Сообщения: 23
Зарегистрирован: 01 янв 2013, 19:01

Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)

Сообщение sshost »

глупый вопрос - что означает такая запись?
movlw (1 << GPIE)

те, перевод этих 1<< в бинарный не понимаю
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)

Сообщение rhf-admin »

<< - это сдвиг влево, а потом написано сколько раз надо сдвинуть
т.е. 1 << GPIE означает, что надо взять b'00000001' (1 в двоичной форме) и сдвинуть 3 раза влево (GPIE - это третий бит регистра INTCON, т.е. где-то в шапке программы наверняка есть запись GPIE equ .3 и компилятор все записи GPIE заменяет на число 3).
Т.е. получается, что movlw (1<<GPIE) = movlw (b'00000001' << 3) = movlw b'00001000'.
С уважением, администрация сайта.
sshost
Читатель
Читатель
Сообщения: 23
Зарегистрирован: 01 янв 2013, 19:01

Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)

Сообщение sshost »

а, спасибо (что нигде про это не нашел)

вот такое
http://dr-shost.com/files/ikrc5sl.asm
шикарно входит в слип (наконец я его увидел, 0.1-0.2 мка - это круто)
когда кнопки нажимаю, ток прыгает до 70мка (те, жизнь есть, но не доходит до посылок кода)
как бы сделать, при нажатии кнопы слалась посылка, как отпустили - в этот слип

там внизу исходника кусок кода чужого со слипом (выход из него по нажатию) - как приделать не пойму
Ответить

Вернуться в «Устройства на микроконтроллерах»