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
nach dem Einschalten leuchten die LED's wie "vorgewählt", Taster haben jedoch keine Funktion...
Bitte um Hilfe.
mfg
Thomas