RC5 i bascom

May 25, 2006 3 Replies

mam pytanko czy s± jakies wytyczne na temat rezonatora kwarcowego je¶li mikrokontroler wspó³pracuje z odbiornikiem podczerwieni TSOP1736 .



program ma mikroprocek wygl±da nastêpuj±co :



Dim Kod As Bit Dim Command As Byte , Subaddress As Byte



Reset Tcon.0 On Int0 Receiverc5 Enable Int0 Enable Interrupts Cls Lcd "Waiting for RC5" Cursor Off Do If Kod = 1 Then Disable Int0 Cls Lcd "Com: " ; Command ; ",Adr: " ; Subaddress Kod = 0 Enable Int0 End If Loop Receiverc5: Getrc5(subaddress , Command) Kod = 1 Return



Odbiornik tak jak bozia przykaza³a podpiêty do portu P3.2 . Mikrokontroler to AT 89s8252 z rezonatorkiem 24 Mhz .



i w wyniku tego programu po próbach z chyba 10 albo 20 ró¿nymi pilotami na wy¶witlaczu LCD wy¶wietla albo com = 0 adr = 0 z ka¿dym nacisniêtym przyciskiem alno com = 63 adr =63 albo com 21 adr = 42 jakies takie warto¶ci ale nie ma jakiej¶ logiki w tym czasem te liczby przeskakuj± na inne w wyniku wcisniêcia tych samych klawiszy w pilotach . testowa³em 2 rózne egzemplarze odbiornika tsop 1736 wymienia³em kondensator oraz rezystor ( w projektach z ró¿nych ¼rude³ by³y ró¿ne warto¶ci c i r do³±czonych do tsop ) i wszystko powodowa³o ten sam skutek .


Nie wiem czy warto¶æ rezonatora przy procku gra role czy nie . zmienia³em nawet ustawienia w bascomie na ró¿ne warto¶ci kwarcu i to samo sie dzieje.



je¶li kto¶ co¶ w tym temacie moze pomóc to bardzo bêde wdziêczny



Spróbuj wywaliæ t± procedurê obs³ugi przerwania a Getrc5 wstaw w pêtlê g³ówn± programu. Ja tak robi³em dla AVR'ów i chodzi³o idealnie. Wydaje mi siê ¿e procedura Getrc5 sama w sobie korzysta z przerwañ i nie mo¿e siê wykonaæ w trakcie obs³ugi innego przerwania.

Pozdrawiam Piotrek

czyta³em na forach dyskusyjnych, ¿e avr'y same w sobie inicjuj± sobie system przerwañ przy procedurze getrc5 a 8051 musi z niego korzystaæ .

U¿ytkownik "Piotrek_P" snipped-for-privacy@op.pl napisa³ w wiadomo¶ci news:e565v7$l13$ snipped-for-privacy@atlantis.news.tpi.pl...

Kiedy¶ z ciekawo¶ci zdeasemblowa³m procedure RC5 z bascoma 8051 (by³a to jedna z pierwszych wersji, byc moze w nowszych jest to inaczje zrealizowane). Procedura ta nie korzysta z przerwañ , a jedynie jej wywo³anie moze nast±pic poprzez przerwanie (jezeli wjescie IR pod³aczone jest do INT i odpowiednio napisany program). W momencie wykrycia pierwszego impulsu na wejsciu (zbocza) przerwania zostaja wy³aczone a procedura przystepuje do "rejestracji" tego co dostaje na wejscie a dok³adniej to czasu trwania stanu niskiego i wysokiego. Czasy te sa odmierzane prosta petl± progrogramowa i zapisywane na stosie. I to jest g³owna wada tej procedury bo do jej wykonania potrzeba sporo pamieci której w ma³ych uk³adach jest b.ma³o. Jezeli Bascom nie kontroluje wykorzystania pamieci i przepe³nienia stosu to przy bardziej skomplikowanych programach mog± dziac sie dziwne rzeczy... Procedura po rejestracji danych przystepuje do ich analizy. Nastepuje porównywanie czasu trwania stanów niskich i wysokich i wyznacznie wartosci odpowiednich bitów w ramce transmisji RC5. Jedyn± aleta tej procedury jest niezalezno¶c od czestotliwo¶ci taktowania procesora , chociaz u mnie nie chcia³a dzia³ac przy mniej niz chyby 2MHz .

U¿ytkownik "Wojtek" snipped-for-privacy@wp.pl napisa³ w wiadomo¶ci news:e54kca$hjl$ snipped-for-privacy@opal.futuro.pl...

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required