Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Problemy z getrc5 w Bascom AVR

Awatar użytkownika
Futrzaczek
-
-
Posty: 781
Rejestracja: 4 gru 2005, o 17:48
Lokalizacja: Piotrków Tryb
Kontaktowanie:

Problemy z getrc5 w Bascom AVR

Postautor: Futrzaczek » 4 gru 2005, o 17:53

Witam

Używam procesorka AT90S2313, Bascoma w wersji 1.11.7.4 i mam problem z poleceniem GETRC5(). Teoretycznie procesorek powinien wpisać wartość odebranej komendy w pamięci EEPROM, ale pojawiają się same "FF". Próbowałem obrazować to za pomocą diody LED(do wyświetlacza LCD i układu MAX232 do RS-a nie mam jeszcze dostępu...). Programik jest następujący:

$crystal = 4000000
Config Portb = Output
Config Portd = &B1111100
Portb = &B11111111
Portd = &B0000111
Config Rc5 = Pind.0
Enable Interrupts
Dim Adress As Byte
Dim Command As Byte
Do
Getrc5(adress , Command(
Writeeeprom Command , 5
Loop
End

Odbiornik IR to TSOP 1736. Działa, bo po podpięciu LED-a do wyścia i "wycelowaniu" pilotem w niego dioda migała. Procesor jest na 100% sprawny. Sprawdzałem na pilotach Philips, Sony, Samsung, LG i jakieś polskie. :562:

szymel
-
-
Posty: 212
Rejestracja: 16 sty 2005, o 16:42
Lokalizacja: Włocławek

Re: Problemy z getrc5 w Bascom AVR

Postautor: szymel » 4 gru 2005, o 20:52

...

Kod: Zaznacz cały

$crystal = 4000000 Config Portb = Output Config Portd = &B1111100 Portb = &B11111111 Portd = &B0000111 Config Rc5 = Pind.0 Enable Interrupts Dim Adress As Byte Dim Command As Byte Do Getrc5(adress , Command) 'poprawiłem nawias , ale nie to jest przyczyną. Writeeeprom Command , 5 Loop End
...
Popełniłeś tzw błąd w sztuce - lekarzem chyba nie jesteś ;)
Wywołana funkcja GetRC5 , nie odebrawszy żadnego "sygnału" kończy swoje działanie , po ~140 ms , zapisując do adresu i komendy wartości &HFF , co oznacza że nie odebrano prawidłowej lub żadnej transmisji.Twój program , jeśli nawet odbierze i zapisze w eepromie poprawną watrość Command , to działając w pętli , ciągle nadpisuje eeprom wartością &HFF , przy braku transmisji i tak w kółko , aż do wyłączenia zasilania uC.
Może tak:

Kod: Zaznacz cały

... Enable Interrupts Dim Adress As Byte Dim Command As Byte Do Getrc5(adress , Command) If Adress<64 Then Command=Command And &H7F ' "obcinamy" najstarszy bit Writeeeprom Command , 10 Writeeeprom Adress , 11 Exit Do Endif Loop 'można mrugnąć diodą LED , by poinformować o poprawnej transmisji Do:Loop 'czekamy na ... End
Zapisując w nieskończonej pętli do pamięci eeprom , bardzo szybko "wykończysz" tę pamięć ;)

Piotrek

Awatar użytkownika
małysz
-
-
Posty: 330
Rejestracja: 4 cze 2004, o 22:16
Lokalizacja: Warszawa
Kontaktowanie:

Postautor: małysz » 4 gru 2005, o 22:16

Witam!
W tym momencie to i ja dziekuje za pomoc bo sie czego

[ Dodano: 04-12-2005, 22:16 ]
Witam!
W tym momencie to i ja dziekuje za pomoc bo sie czegos nauczyłem.

Awatar użytkownika
Futrzaczek
-
-
Posty: 781
Rejestracja: 4 gru 2005, o 17:48
Lokalizacja: Piotrków Tryb
Kontaktowanie:

Postautor: Futrzaczek » 5 gru 2005, o 08:12

Niestety, i to nie chce działać. "Skserowałem" dokładnie cały program, piloty nadają w RC5, odbiornik działa, procek działa , kwarc działa i nie wiem co robić. "Bascomowiczem" jestem od 2 tygodni, ale mniej więcej, wiem co robić.

[ Dodano: 06-12-2005, 19:59 ]
Problem rozwiązałem. Zamiast kondensatora 100uF przy zasilaniu TSOP 1736 dałem kondensatory 220uF i jeszcze 68nF. To załatwiło sprawę i powinno być przestroga dla innych na przyszłość! :D

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 98 gości