Hallo!
Bin gerade am Bau meiner Pflanzenbeleuchtung. Nachdem ich hier noch ne RGBW Steuerung rumliegen hatte, hab ich einfach die verwendet und steuere die Grünen LED's nicht an (6-Pin SuFlu RGB).
Programm sollte eigentlich nicht viel mehr können als R, B und W heller bzw. dunkler zu machen. Gemacht soll das ganze mit 6 Tastern werden, die alle gegen GND ziehen. Leider macht das Programm aber nicht das, was es soll. Hier mal n Programmauszug:
Code
$regfile = "m16def.dat" ' Atmel Atmega16
$crystal = 8000000 ' Interner Oszilator 8MHz
$hwstack = 32 ' default
$swstack = 10 ' default
$framesize = 40
Config Timer0 = Pwm , Pwm = On , Prescale = 8 , Compare Pwm = Clear Down
Config Timer1 = Pwm , Pwm = 8 , Prescale = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Config Timer2 = Pwm , Pwm = On , Prescale = 8 , Compare Pwm = Clear Down
On Timer2 Time_isr
'Ausgänge deklarieren
Config Portb.3 = Output
Config Portd.5 = Output
Config Portd.4 = Output
Config Portd.7 = Output
'Eingänge deklarieren
Config Pina.0 = Input
Config Pina.1 = Input
Config Pina.2 = Input
Config Pinb.0 = Input
Config Pinb.1 = Input
Config Pinb.2 = Input
'PWM registrieren
Red Alias Ocr1bl
Green Alias Ocr1al
Blue Alias Ocr2
White Alias Ocr0
Enable Timer0
Enable Timer1
Enable Timer2
Start Timer0
Start Timer1
Start Timer2
'Taster deklarieren
S1 Alias Pina.0
S2 Alias Pina.1
S3 Alias Pina.2
S4 Alias Pinb.0
S5 Alias Pinb.1
S6 Alias Pinb.2
Enable Interrupts
Dim Red_soll As Byte
Dim Green_soll As Byte
Dim Blue_soll As Byte
Dim White_soll As Byte
Red_soll = 127
Green_soll = 0
Blue_soll = 127
White_soll = 127
Do
Red = Red_soll
Green = Green_soll
Blue = Blue_soll
White = White_soll
Loop
End
Time_isr:
If S1 = 0 Then
Bitwait S1 , Set
If White_soll < 255 Then
White_soll = White_soll + 10
Else
White_soll = 255
End If
End If
If S2 = 0 Then
Bitwait S2 , Set
If White_soll > 0 Then
White_soll = White_soll - 10
Else
White_soll = 0
End If
End If
If S3 = 0 Then
Bitwait S3 , Set
If Blue_soll < 255 Then
Blue_soll = Blue_soll + 10
Else
Blue_soll = 255
End If
End If
If S4 = 0 Then
Bitwait S4 , Set
If Blue_soll > 0 Then
Blue_soll = Blue_soll - 10
Else
Blue_soll = 0
End If
End If
If S5 = 0 Then
Bitwait S5 , Set
If Red_soll < 255 Then
Red_soll = Red_soll + 10
Else
Red_soll = 255
End If
End If
If S6 = 0 Then
Bitwait S6 , Set
If Red_soll > 0 Then
Red_soll = Red_soll - 10
Else
Red_soll = 0
End If
End If
Return
Alles anzeigen
nach dem Einschalten leuchten die LED's wie "vorgewählt", Taster haben jedoch keine Funktion...
Bitte um Hilfe.
mfg
Thomas