Dekodowanie RC5 w Bascom

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
ukas
-
Posty: 3
Rejestracja: 27 lut 2005, 1:26
Kontakt:

Dekodowanie RC5 w Bascom

Post autor: ukas » 27 lut 2005, 1:35

Witam!

Zwracam się z prośbą o pomoc w następującej kwestii:
Problem polega na odczytaniu kodu RC5.
Zbudowałem prosty układ składający się z uP AT90S2313 do którego to podłączyłem niezbędne peryferia (rezonator itd.) oraz do wyprowadzenie PD2 (INT0) standardową aplikacje odbiornika podczerwieni tfms5xx0. Napisałem następujący program:

Kod: Zaznacz cały

$regfile = "2313def.dat" 
$crystal = 4000000 
$baud = 9600 
$lib "mcsbyte.lbx" 

Config Int0 = Low Level 
Config Rc5 = Pind.2 [timer = 1] 
On Int0 Pobrc5 
Config Pind.2 = Input 

Dim Address As Byte , Command As Byte 
Dim Odebrano As Bit 
Enable Interrupts 
Enable Int0 
Set Odebrano 
Print "Poczatek..." 
Do 
   If Odebrano = 1 Then 
   Print Address ; Command 
   Reset Odebrano 
   Enable Int0 
   End If 
Loop 
End 

Pobrc5: 
Disable Int0 
Enable Interrupts 
Getrc5(address , Command) 
Command = Command And &B01111111 
Set Odebrano 
Return
Jak widać odczytane wartości zmiennych Address i Command odczytuje przy pomocy terminala przez RS232.
Po zaprogramowaniu i uruchomieniu procka wszystko jest w porządku, zgłasza się komunikat "Początek..." oraz wyświetla się wartość zmiennych "00" . Problem polega na tym, że po naciśnięciu dowolnego klawisza np. pilota TV program reaguje, ale zawsze odczytuje wartości:255 i 127.

Wygląda to tak jak by nie działała funkcja "Getrc5()".

Gdzie może być błąd?
Sprawdzałem dla różnych wartości częstotliwości rezonatora itd. Efekt ciągle ten sam.

Pozdrawiam
Łukasz

www.obwodypcb.com

Wojtek
Moderator
Posty: 2606
Rejestracja: 04 sie 2002, 19:00
Lokalizacja: --
Kontakt:

Post autor: Wojtek » 27 lut 2005, 18:05

Sprawdziłem to w układzie z ATmega 8 i z odbiornikiem TFMS5360 i mam dokładnie to samo, z tym że do końca nie jestem pewien czy pilot którego używam jest w RC5.

Gość

Post autor: Gość » 27 lut 2005, 22:29

Używam scalonego odbiornika podczerwieni, właśnie takiego jaki opisany jest w helpie do Bascoma. Na fale nośna o częstotliwości 36kHz.

Co do pilota, to nie mam tej pewności. Jutro kupię diodę podczerwieni i sam zbuduje nadajnik.

Cały problem polega na tym, że ja już zbudowałem urządzenie oparte na transmisji danych w podczerwieni. Jedyna różnica to ta że używałem wtedy procesora 89c2051 a teraz chciałem wykorzystać AVR 90S2313.

I wszystko działało bez zarzutów.

ukas
-
Posty: 3
Rejestracja: 27 lut 2005, 1:26
Kontakt:

Post autor: ukas » 27 lut 2005, 22:31

Autorem powyższego postu jestem ja.
Zapomniałem się zalogować.

Pozdrawiam
Łukasz

Wojtek
Moderator
Posty: 2606
Rejestracja: 04 sie 2002, 19:00
Lokalizacja: --
Kontakt:

Post autor: Wojtek » 28 lut 2005, 19:03

Porobiłem parę pomiarów, a mianowicie podpiąłem sie oscyloskopem do wyjścia odbiornika TMFS5360 czyli na wejście PinD.2 uC. Zapisałem przebiegi po naciśnięciu kolejno przycisków 1, 2, 3, 4 i 5 pilota jaki mam do karty telewizyjnej TVPhone98. Widać na obrazku że w pewnym fragmencie sie różnią te przebiegi czyli odbiornik chyba dobrze odczytuje, niestety nie znam kodowania RC5 więc nie wiem czy z tego dalej się da wyciągnąc wnioski, może ktoś przyglądnie się temu?
Obrazek
Ostatnio zmieniony 06 cze 2005, 19:01 przez Wojtek, łącznie zmieniany 2 razy.

ukas
-
Posty: 3
Rejestracja: 27 lut 2005, 1:26
Kontakt:

Post autor: ukas » 01 mar 2005, 22:27

Witam!

Zbudowałem nadajnik. Z drugiego procesora nadaje kod RC5 poleceniem rc5send(). I nadal nic. Na odbiorniku jedynie „255 i 127”

Kto ma jakiś pomysł?


Pozdrawiam
Łukasz
http://www.obwodypcb.com

wwmajor
-
Posty: 18
Rejestracja: 28 sie 2004, 21:29
Lokalizacja: Rzeszów
Kontakt:

po problemie

Post autor: wwmajor » 18 mar 2005, 22:31

Problem tkwi w pilocie pożyczcie sobie pilota Philips od sąsiadów i będzie działać. A jak nie to proponuję ściągnąć mój program. http://www.elektroda.pl/rtvforum/viewto ... highlight= Podłączyłem tam mojego TSOP1730 do Portb.5 bo tak mi pasowało i pięknie działa na ponad 25 m

ZbeeGin

Post autor: ZbeeGin » 10 lip 2005, 20:37

A zapomniałeś zdefiniować zmiennej globalnej o nazwie ToggleBit. Nowsze wersje procedury bibliotecznej _GetRC5 wymagają tej zmiennej. Sprawdź w helpie.

wwmajor
-
Posty: 18
Rejestracja: 28 sie 2004, 21:29
Lokalizacja: Rzeszów
Kontakt:

Post autor: wwmajor » 04 wrz 2005, 17:34

A zapomniałeś zdefiniować zmiennej globalnej o nazwie ToggleBit. Nowsze wersje procedury bibliotecznej _GetRC5 wymagają tej zmiennej. Sprawdź w helpie.
Hm czy my mówimy o Bascom AVR? Bo ja czegoś takiego jak Togglebit nie znalazłem jest toggle ale to służy do całkiem innych celów. Ja korzystam z wersji 1.11.7.4. Tak gwoli ścisłości to mi ten programik działa i to bez problemów.

Awatar użytkownika
Tranzystor
Użytkownik
Posty: 889
Rejestracja: 28 sie 2005, 19:19
Lokalizacja: Świętochłowice
Kontakt:

Post autor: Tranzystor » 06 wrz 2005, 17:50

Anonymous pisze:Używam scalonego odbiornika podczerwieni, właśnie takiego jaki opisany jest w helpie do Bascoma. Na fale nośna o częstotliwości 36kHz.

Co do pilota, to nie mam tej pewności. Jutro kupię diodę podczerwieni i sam zbuduje nadajnik.

Cały problem polega na tym, że ja już zbudowałem urządzenie oparte na transmisji danych w podczerwieni. Jedyna różnica to ta że używałem wtedy procesora 89c2051 a teraz chciałem wykorzystać AVR 90S2313.

I wszystko działało bez zarzutów.
Tak, ponieważ w BASCOM '51 jest w konfiguracji zrobiony port RC5. Niestety w BASCOM AVR tego nie ma! Jeżeli komuś uda się to zrobić to prosze mnie powiadomić bo też bardzo chętnie bym się tym pobawił.

Może ktoś połączy te dwa procesory i będą wspulnie działały i może będzie to prostsze, ale podejrzewam że droższe

ZbeeGin

Post autor: ZbeeGin » 07 wrz 2005, 18:51

Tranzystor pisze: Tak, ponieważ w BASCOM '51 jest w konfiguracji zrobiony port RC5. Niestety w BASCOM AVR tego nie ma!
Kolego, popatrz na listing: CONFIG RC5. Tu właśnie się konfiguruje RC5 w procesorach AVR.
W Bascom 8051 też jest taka instrukcja, ale aktualnie jest zablokowana, więc jedyny sposób konfuguracji to opcje kompilatora.


Wracając do tematu. Wyciągnij "na chwilę" GETRC5 z przerwania, jeśli będzie odbierał kody poprawnie to znaczy, że "gryzie" się przerwanie z GETRC5.

Awatar użytkownika
c4r0
Moderator
Posty: 2150
Rejestracja: 13 kwie 2004, 19:56
Lokalizacja: z lasu
Kontakt:

Post autor: c4r0 » 07 wrz 2005, 19:49

Ja używałem tej funkcji zarówno w przerwaniu jak i w pętli bez przerwania i działało. Jedyne co mi przychodzi na myśl to zły pilot ...

ODPOWIEDZ