'++++++++++++++++++++++++++++++++++++IR-fernbedienung für RGBW-Projekt++++++++++++++++++++++++++++++++++++++
'von Eberl Florian (2011)
'Aufgabe: Übertragen von Signalen an einem Empfänger der die komplette Farbpalette durcharbeitet.
'Wird am Drehencoder gedreht, dann sendet die fernbedienung einen Code (mehr/weniger), welcher bewirkt,
'dass das Farbrad "Weiterläuft". Bei Betätigen des Tasters im Encoder springt Die Farbe wieder auf Weiss.
'Probleme: Wakeup nicht möglich bei Benutzung des Sleep Befehls, Drehimpulsgeber von reichelt scheint Encoder
'Befehl zu verwirren----> Bei 1 Drehung 30% "Mehr" und 70% "weniger"....nie sortenreines "mehr" oder "weniger"
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$regfile = "attiny2313.dat"
$crystal = 8000000
'#######################Deklarationen####################
'I/Os
Config Pind.4 = Input 'A-Pin Encoder
Config Pind.5 = Input 'B-Pin Encoder
Portd.4 = 1 'Pullups Encoder
Portd.5 = 1
Config Pind.2 = Input 'Wakeup Taster Encoder
Portd.2 = 1 'Taster Pullup
Config Portb.1 = Output 'Leds an der platine--> derzeit funktionstest
Config Portb.3 = Output 'IR-Leds
'Variablen
Dim Togbit As Byte , Command As Byte , Address As Byte ,
Dim Togglebit As Bit 'Keine ahnung ob Bascom selbst toggelt :(
Togglebit = 0
Address = 0
Dim E As Byte 'Encoder Byte....nicht genutzt
'Timer usw.
Config Int0 = Low Level
On Int0 Weiss
Enable Interrupts
Enable Int0
'#######################Arbeitsschleife#####################
Do
Togbit = Togglebit 'Togbit 1-0-1-0....
E = Encoder(pind.4 , Pind.5 , Weniger , Mehr , 1) 'Encoder Lesen , warten auf eingabe
Rc5send Togbit , Address , Command ' rc5 code senden
Loop
'#######################ISRs################################
Mehr:
Command = 12
Toggle Togglebit
Toggle portb.1
Return
Weniger:
Command = 8
Toggle Togglebit
Toggle portb.1
Return
Weiss:
Command = 5
Toggle Togglebit
Toggle portb.1
Return
End