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.
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
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
- Futrzaczek
- -
- Posty:782
- Rejestracja:4 gru 2005, o 17:48
- Lokalizacja:Piotrków Tryb
- Kontaktowanie:
Re: Problemy z getrc5 w Bascom AVR
Popełniłeś tzw błąd w sztuce - lekarzem chyba nie jesteś......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
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
Piotrek
- Futrzaczek
- -
- Posty:782
- Rejestracja:4 gru 2005, o 17:48
- Lokalizacja:Piotrków Tryb
- Kontaktowanie:
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ść!
[ 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ść!
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 95 gości