Gnargl...
Auf'm Mobile kann ich die Programm nicht einfach sehen, der PC will sie ausführen... müßte man runterladen und umbenennen. DAs PDF könnte man nach dem Download zumindest ansehen.
Warum nicht einfach beides direkt hier einstellen?
Variante I (ohne Background)
CodeBox BascomAVR
$regfile "m328pdef.dat" ' Definiert den Prozessor als Atmega8
$crystal = 8000000 ' Gibt die Quarzfrequenz an in Herz
$hwstack = 100 ' default use 100 for the hardware stack
$swstack = 100 ' default use 100 for the SW stack
$framesize = 100 ' default use 100 for the frame space
$lib "mcsbyte.lbx" ' Library für LCD Display laden
' Konfiguration fürs Display
' LCD Liquid Drystal Display
' 4 Bit Text-LCD mit 2 mal 16 Zeichen benutzen
' Anschluß Pins des Display's konfigurieren
' Nur zum Test bis I2C lief, kann entfallen
Config Lcd = 16 * 2 ' Text-Display mit 2 mal 16 Zeichen benutzen
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , _
Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 ' "_" = nächste Zeile !! hinter dem "_" darf nicht weiter geschrieben werden, auch kein Kommentar
' 4 Bit Text-LCD initialisieren
' folgen 4 Zeilen nur zum Test bis I2C lief, kann entfallen
Wait 2 ' Warte 2 Sekunden bevor Display initialisiert wird
Initlcd ' LCD initialisieren
Cursor Off ' Cursor aus
Cls
' Eingang für IR Signal TSOP4836
Dim Address As Byte ' Variable definieren
Dim Command As Byte ' Variable definieren
Config Rc5 = Pind.2 , Wait = 500 ' Pind.2 als Eingang für IR Signal
Enable Interrupts ' Interrupts Global freigeben
Do
' Anfang der Programm-Schleife
Getrc5(address , Command) ' RC5 Adresse und Kommando wird abgefragt
Reset Command.7
If Address <> 255 Then ' Bei erkannter Adresse
Cls
' Zum Test kann entfallen begin
Locate 1 , 1 ' Cursor im Display auf Zeile1 Spalte 1 setzen
Lcd "Adr: " ; Address ' Cursor im Display auf Zeile1 Spalte 1 setzen
Locate 2 , 1 ' Cursor im Display auf Zeile 2 Spalte 1 setzen
Lcd "Kom: " ; Command
Toggle Portb.1
Wait 1
End If
Loop
End
Variante II (Background)
CodeBox BascomAVR
$regfile "m328pdef.dat" ' Definiert den Prozessor als Atmega8
$crystal = 8000000 ' Gibt die Quarzfrequenz an in Herz
$hwstack = 100 ' default use 100 for the hardware stack
$swstack = 100 ' default use 100 for the SW stack
$framesize = 100 ' default use 100 for the frame space
$lib "mcsbyte.lbx" ' Library für LCD Display laden
' Konfiguration fürs Display
' LCD Liquid Drystal Display
' 4 Bit Text-LCD mit 2 mal 16 Zeichen benutzen
' Anschluß Pins des Display's konfigurieren
' Nur zum Test bis I2C lief, kann entfallen
Config Lcd = 16 * 2 ' Text-Display mit 2 mal 16 Zeichen benutzen
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , _
Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 ' "_" = nächste Zeile !! hinter dem "_" darf nicht weiter geschrieben werden, auch kein Kommentar
' 4 Bit Text-LCD initialisieren
' folgen 4 Zeilen nur zum Test bis I2C lief, kann entfallen
Wait 2 ' Warte 2 Sekunden bevor Display initialisiert wird
Initlcd ' LCD initialisieren
Cursor Off ' Cursor aus
Cls
Enable Interrupts
' Eingang für IR Signal TSOP4836
Config Rc5 = Pinb.0 , Timer = 1 , Mode = Background
Do
' Anfang der Programm-Schleife
If _rc5_bits.4 = 1 Then ' RC5 Code wurde empfangen
Cls
' Zum Test kann entfallen begin
Locate 1 , 1 ' Cursor im Display auf Zeile1 Spalte 1 setzen
Lcd "Adr: " ; Rc5_address ' Cursor im Display auf Zeile1 Spalte 1 setzen
Locate 2 , 1 ' Cursor im Display auf Zeile 2 Spalte 1 setzen
Lcd "Kom: " ; Rc5_command
Toggle Portb.1
' Zum Test kann entfallen ende
Wait 1
_rc5_bits.4 = 0 ' Für nächsten Empfang freigeben
End If
Loop
End
Die Tabelle hätteste hier auch als (*Trommelwirbel*) Tabelle einfügen können - die PDF 'nehm ich jetzt aber nicht auseinander...
Zum eigentlichen Problem: Hast Du mal versucht herauszubekommen, welche Version korrekt ist (also 'n LogicAnalyzer an den TSOP und dann ausgewertret, was tatsächlich bei einer Taste gesendet wird, und was die beiden Programme (auf zwei Controllern) daraus machen?
Soweit ich das gesehen habe, unterstützt die FB auch RC-6...