ИК пульт

Всё об интерфейсах, протоколах, подключении к МК разных устройств, подключении контроллеров к ПК...
Аватара пользователя
БАРС
модератор, спонсор, писатель, идеолог, редактор
модератор, спонсор, писатель, идеолог, редактор
Сообщения: 2019
Зарегистрирован: 16 ноя 2009, 15:25
Откуда: СССР, г. Москва

Re: ИК пульт

Сообщение БАРС »

Пропал Админ. В его аккаунте видно, что более недели не заходил :cry2:
Последнее посещение:
27 сен 2013, 13:40
Сотрудничаю с НАСА, Роскосмос, Газпром, РЖД, Интер РАО ЕЭС, Роснано и др. (конкретно уточняйте у самой организации) ©.
iLan
Читатель
Читатель
Сообщения: 24
Зарегистрирован: 14 сен 2013, 06:01

Re: ИК пульт

Сообщение iLan »

rhf-admin писал(а):Эти программы - это всего лишь примеры. Никто точно не может предсказать что захочешь от программы именно ты. Кому-то пофиг на энергопотребление, кому-то нет, кому-то нужно, чтобы светики гасли при повторном нажатии, кому-то нет и т.д. и т.п. Поэтому, естественно, что для того чтобы получилось именно то, что нужно именно тебе - программу нужно переделать.
Лучше и полезнее конечно самому попробовать разобраться и общаться на форуме на тему: "почему я делаю вот так и вот так, но это не работает", чем на тему: "а переделайте ка мне программу, потому что я не умею".
В любом случае, если ты хочешь, чтобы тебе помогли - тогда конкретно напиши, о каких программах идёт речь, потому что там для каждой схемы по несколько программ для разных протоколов и т.д.
Уже не ответишь нам?
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: ИК пульт

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

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

Re: ИК пульт

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

Итак, чтобы сделать инверсию - нужно вот этот кусок:

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

gasim     movlw  b'11101000'
          addwf  GPIO,1
          return
стереть совсем. (Тут по ходу ещё и ошибка была, по идее надо не addwf, а andwf использовать, но это уже не важно)
Далее переделать вот так:

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

;******* Проверка команды 1 *********************************************************
                  movlw     CMD_1
                  xorwf     LBC,0           ;
                  btfss     Status,2        ; если бит 2 (Z) в регистре Status=1, то следующая инструкция не выполняется
                  goto      com2            ;
                  mowlw     b'11101001'     ; гасим все, кроме первого
                  andwf     GPIO,1
                  mowlw     b'00000001'     ; первый - инвертируем
                  xorwf     GPIO,1
                  goto  out
;****** Проверка команды 2 ***********************************************
com2              movlw     CMD_2
                  xorwf     LBC,0           ;
                  btfss     Status,2        ; если бит 2 (Z) в регистре Status=1, то следующая инструкция не выполняется
                  goto      com3            ;
                  mowlw     b'11101010'     ; гасим все, кроме второго
                  andwf     GPIO,1
                  mowlw     b'00000010'     ; второй - инвертируем
                  xorwf     GPIO,1
                  goto      out
;******* Проверка команды 3 ********************************************************
com3              movlw     CMD_3
                  xorwf     LBC,0           ;
                  btfss     Status,2        ; если бит 2 (Z) в регистре Status=1, то следующая инструкция не выполняется
                  goto      com4            ;
                  mowlw     b'11101100'     ; гасим все, кроме третьего
                  andwf     GPIO,1
                  mowlw     b'00000100'     ; третий - инвертируем
                  xorwf     GPIO,1
                  goto      out
;******* Проверка команды 4 ********************************************************
com4              movlw     CMD_4
                  xorwf     LBC,0           ;
                  btfss     Status,2        ; если бит 2 (Z) в регистре Status=1, то следующая инструкция не выполняется
                  goto      out             ;
                  mowlw     b'11111000'     ; гасим все, кроме четвертого
                  andwf     GPIO,1
                  mowlw     b'00010000'     ; четвертый - инвертируем
                  xorwf     GPIO,1
С уважением, администрация сайта.
iLan
Читатель
Читатель
Сообщения: 24
Зарегистрирован: 14 сен 2013, 06:01

Re: ИК пульт

Сообщение iLan »

я попытался, начал читать самоучитель, но понял что это целую отдельную профессию надо изучить!
iLan
Читатель
Читатель
Сообщения: 24
Зарегистрирован: 14 сен 2013, 06:01

Re: ИК пульт

Сообщение iLan »

для начала, это что именно переделывать, пульт или приемник?
iLan
Читатель
Читатель
Сообщения: 24
Зарегистрирован: 14 сен 2013, 06:01

Re: ИК пульт

Сообщение iLan »

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

Re: ИК пульт

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

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

Re: ИК пульт

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

Энергосбережение можно попробовать сделать так:

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

      bsf   INTCON,3  ; разрешаем прерывания от GPIO
Scan  btfss  GPIO,5    ; если 5-й бит равен единице - данных нет, пропускаем
      call   priem
      btfsc  MBC,7     ; если start bit (7-й) в регистре MBC = 1,
                       ; то была принята информация
      call   rab_chast
      bcf  INTCON,0 ; сбрасываем флаг прерываний от изменения уровня на ногах
      sleep              ; и засыпаем
      goto   Scan  ; просыпаемся и продолжаем работать
Если GIE сброшен, а прерывание от изменения на ногах разрешено, то выход из sleep по изменению уровня на ногах произойдёт, но прерывания не случиться, программа просто продолжит выполняться дальше.

З.Ы. Отпишись потом о результатах. :)
С уважением, администрация сайта.
iLan
Читатель
Читатель
Сообщения: 24
Зарегистрирован: 14 сен 2013, 06:01

Re: ИК пульт

Сообщение iLan »

так куда этот кусок надо вставить? и объясни попроще как это должно работать!
Ответить

Вернуться в «Интерфейсы / Протоколы / Периферия»