Nach der BASCOM-Hilfe (Version 2.0.7.5) können mit RC5sendExt erweiterte Codes von 64 bis 127 gesendet werden.
Nachdem ich aus der Hilfe nicht schlau wurde, es bei mir auch nicht auf Anhieb funktionierte und nicht die richtige Stelle im Internet fand, bin ich schließlich nach einigem Probieren zu folgenden Programmen gelangt:
Sendeprogramm
Code:'######################################################################################### '### ### '### RC5-SENDEXT_V01.BAS ### '### Demo zum Senden der RC5 extended Codes (Code 64 bis 127) ### '### ### '### Programm sendet Codes von 0 bis 127 an Adresse 1 ### '### HW Aufbau analog wie in der Bascom Hilfe bei RC5send (RC5sendEXT) beschrieben ### '### (!!! OC1A Pin als Output konfigurieren und dort die Sendediode anschließen !!!) ### '### ### '### IDE: Bascom Demo Version 2.0.7.5 ### '### Author: Searcher (User im www.roboternetzt.de) ### '### ### '######################################################################################### $regfile = "ATtiny24.DAT" $framesize = 32 $swstack = 32 $hwstack = 36 $crystal = 8000000 Dim I As Byte 'Schleifenvariable Dim Address As Byte 'Geräteadresse Dim Commandcode As Byte 'RC5 Code Config Porta.6 = Output 'IR SendeLED via Transistor an OC1A Do For I = 0 To 127 Address = 1 Commandcode = I 'Wenn Command größer 63 wird, lösche Bit 6 für extended RC5 Codes. Toggle Bit (Bit 5) wird hier immer auf 0 gesetzt) If Commandcode > 63 Then Rc5sendext &B10000000 , Address , Commandcode Else Rc5sendext &B11000000 , Address , Commandcode Waitms 250 'Wartezeit um gesendeten Wert am Empfänger zu kontrollieren Next I Loop End 'end program
Anscheinend muß das Bit 6 für Bank Switching "zu Fuß" gesetzt werden. RC5sendExt erkennt nicht automatisch, daß der zu sendende Code größer 63 ist und aktualisiert das Bit nicht automatisch.
Empfängerprogramm
Falls jemand eine andere Lösung hat, wäre ich daran sehr interessiert.Code:'######################################################################################### '### ### '### RC5-REC_V01.BAS ### '### Empfängerprogramm zum RC5-SENDEXT_V01.BAS ### '### ### '### Programm empfängt die RC5 Codes von 0 bis 127 gesendet von RC5-SENDEXT_V01.BAS ### '### Empfangenen Werte werden über Software UART an einen PC zur Kontrolle gegeben ### '### HW Aufbau analog wie in der Bascom Hilfe bei GetRC5 beschrieben ### '### ### '### IDE: Bascom Demo Version 2.0.7.5 ### '### Author: Searcher (User im www.roboternetzt.de) ### '### ### '######################################################################################### $regfile = "ATtiny44.DAT" 'tatsächlicher µC im HW Aufbau war ATtiny44A $framesize = 32 $swstack = 32 $hwstack = 36 $crystal = 8000000 Dim Address As Byte Dim Commandcode As Byte Config Rc5 = Pinb.2 , Wait = 2000 'TSOP an PB2 Enable Interrupts Open "coma.3:4800,8,n,1" For Output As #1 'Software UART an PA3 zur Ausgabe der Werte am PC Print #1 , "Waiting for RC5..." 'Lebenszeichen an PC schicken Do 'Getrc5 empfängt auch die extended RC5 Codes Getrc5(address , Commandcode) If Address <> 255 Then 'wenn kein RC5 Signal anliegt, ist Address mit 255 belegt Commandcode = Commandcode And &B01111111 Print #1 , Address ; "," ; Commandcode 'Empfangene Werte an PC schicken End If Loop End 'end program
Gruß
Searcher







Hoffentlich liegt das Ziel auch am Weg
Zitieren

Lesezeichen