Ik heb de programmacode van de RC5 afstandsbediening op picbasic.nl doorgenomen, maar zit toch nog met enkele vraagjes.

;IR-LED uit
LichtUitRC5
movlw D'100' ;RC5 heeft 100 (255 als xtal = 10MHz) tijdseenheden IR-LED uit
movwf Cycl_2

Waar haalt men die waarde 100 en in wat wordt deze uitgedrukt?

LichtAan1RC5
;Pauze
nop
movlw D'4' ;Tijd voor (15 als Xtal = 10MHz) pauze tussen IR-LED blink
movwf Cycl_2
LichtAan2RC5
decfsz Cycl_2,f
GoTo LichtAan2RC5
;Puls
bsf IrOut ;IR-LED aan
movlw D'1' ;Tijd voor (5 als Xtal = 10MHz) IR-LED blink
movwf Cycl_2

Hetzelfde treedt verder terug op. Hoe bepaal je dat deze waarde 4 is en hoe dat deze 15 is bij een kristal van 10MHz?

Het is alweer een aantal jaren geleden dat ik dit programma geschreven heb.
Wat ik er nog van weet is dat ik deze waarden als optimaal heb gevonden met behulp van een oscilloscoop (d.m.v. experimenteren dus).

Het is logisch dat als je i.p.v. een 4MHz kristal, een 10MHz op de PIC aansluit, dat de infrarood LED veel sneller gaat blinken waardoor het apparaat dat het infrarood signaal ontvangt het niet meer herkent (is geen 36kHz blinking meer).
Dus moet je de wachtlusjes in het ASM programma vaker doorlopen (dus aanpassen) om weer op de oorspronkelijke blinktijd uit te komen.

Het werkt bij mij in de praktijk al jaren, ik heb hier in huis vrijwel alles op de afstandsbediening www.picbasic.nl/philips_prontoneo_nl.htm (ramen, luxaflex, bad vullen, verwarming, lampen, enz.enz., dus wat is het probleem nu, waarom wil je dit weten?

Ahzo, dan zal ik er wat mee moeten experimenteren. Wat ik ook niet versta is dat je 100 tijdséénheden uit en 32 éénheden aan de voor een '1' of een '0' uit te beelden. Bij het opzoeken van informatie over het RC5 protocol heb ik gezien dat de het hoog-en laag niveau even lang duren nl. 889us. Uit jouw programma zou ik verstaan dat een '1' of een '0' bestaat uit 2/3 uit en 1/3 aan.

De reden waarom ik dit wou weten is indien ik bv geen RC5 protocol gebruik maar bv. Japan code hoe ik dit zou kunnen aanpassen.

[Bericht gewijzigd door The_Return op ]