Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Rc5 и мега 48

Сообщений 1 страница 12 из 12

1

Ребят, помогите плиз, неполучается принимать с пульта команды :(

Код:
$regfile = "m48def.dat"
$crystal = 16000000                                         '÷àñòîòà êâàðöåâîãî ðåçîíàòîðà 16mHz

$lib "mcsbyte.lbx"                                          ' Áèáëèîòåêà äëÿ èñïîëüçîâàíèÿ ïðîòîêîëà RC5

Config Rc5 = Pind.2

Enable Timer0

Config Pind.3 = Output : Led1 Alias Portd.3
Config Pind.4 = Output : Led2 Alias Portd.4
Config Pind.5 = Output : Led3 Alias Portd.5
Config Pind.6 = Output : Led4 Alias Portd.6
Config Pind.7 = Output : Led5 Alias Portd.7

'*******************************************************************************

Dim Address As Byte , Command As Byte
Enable Interrupts                                           ' ðàçðåøàåì ïðåðûâàíèÿ

'*******************************************************************************

Do

Getrc5(address , Command)
    If Address <> 255 And Command <> 255 Then
     Command = Command And &B01111111
    End If
    If Command = 1 Then
    Set Led1
    Elseif Command = 2 Then
     Set Led2
    Elseif Command = 3 Then
     Set Led3
    Elseif Command = 4 Then
     Set Led4
    Elseif Command = 5 Then
     Set Led5
    Elseif Command = 6 Then
     Reset Led1
    Elseif Command = 7 Then
     Reset Led2
    Elseif Command = 8 Then
    Reset Led3
    Elseif Command = 9 Then
    Reset Led4
    Elseif Command = 10 Then
     Reset Led5
    End If

Loop

Светодиоды не зажигаются  :dontknow:
ТСОП использую 1736, на меге 32 работает, а тут нет
ТСОП подключаю напрямую к порту, и кондер 0.1мкФ между GND и Vcc

Отредактировано pashteet (2009-10-27 11:27:34)

0

2

Mrshilov
Спасибо за советы!
Мега без буквы V, кварц проверял путем мигания светодиодами раз в 1 секунду, ноги все рабочие, щас буду пробывать с библиотекой мудрить
Кстати, резистора подтяжки на ногу к которой подключен ТСОП нету, пробывал так подключать к Меге32 все работает, без проблем, а тут нехочет :(

0

3

Все заработало! Спасибо.

0

4

что было?
как вылечил?

0

5

Кривые руки были :) Дорожка от выхода ТСОПА замыкала на землю :canthearyou:

0

6

Есть код, рабочий. Но не так как хочется.

$regfile = "m48def.dat"
$crystal = 12000000
Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.1 , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5
Config Lcd = 16 * 2
Cursor Noblink
Cursor Off
Cls

Config Rc5 = Pind.3
Config Pind.3 = Input
Enable Interrupts

Dim Address As Byte
Dim Command As Byte

Do

Getrc5(address , Command)

If Address < 255 Then
Command = Command And &B01111111
Locate 1 , 1
Lcd "                "
Locate 1 , 1
Lcd "Adr: " ; Address ; " Cmd: " ; Command
End If

Loop

End

Команды распознаёт и выводит на ЖКИ.
После отпускания кнопки пульта на ЖКИ - последняя команда. Нажал другую кнопку - поменялись значения.
Т.е. я не могу определить, когда одна и таже кнопка нажата, а когда отпущена.

Кто-то может сталкивался с подобным?

0

7

Как теперь это всё организовать программно и в основном цикле? Прерывания использовать нельзя! Я что-то не пойму логику работы RC5 в Баскоме. Логично было бы получить на выходе  код и адрес команды, когда нажата кнопка и значения 255 когда она отпущена. А так адрес и команда остаются, даже если кнопка уже отпущена. И изменяются на следующие при нажатии других. Или это только у меня так? Может кто-то сможет проверить в железе? Есть подозрения, что это компилятор -новая версия 1.12.0.0... Приделал ИК в проект ЮСБ, вроде всё хорошо, кроме этой проблемы. Если её удастся решить, получится ещё один полезный девайс.

0

8

Короче, в версиях с 1.11.9.8 появилась конфигурация RC5 с помощью Wait. По умолчанию, без явного указания равна 100. У меня заработало при 109. Как реализовал, посмотреть можно здесь - http://bascom.at.ua/publ/rc5_dlja_usb/1-1-0-37

0

9

Пишет "Page Not Found (404)"

0

10

Поправил ссылку.

0

11

Mrshilov
1. При каждом новом нажатии на кнопку в передаваемом пакете меняется значение триггерного бита, а при длительном удержании - посылка пакета постоянно повторяется с неизменным триггерным битом.
2. Длина пакета - 25мс, затем пауза 89мс. Если больше - значит кнопка отпущена.

А как это можно применить для "фиксированных" и "не фиксированных" кнопок?

0

12

вот здесь нашел, но только на Си.
http://avrlab.com/node/74
Как бы в bascom этот тригер?

0