Hallo liebe Leute,
ich habe ein Programm geschrieben, welches per SW-PWM 4 LED`s nacheinander auf und ab dimmt.
das Ganze soll ein Drehlicht simmulieren.
Was mir noch fehlt ist eine "Art" Nachglüh-Effekt".
also, es soll die LED danach noch etwas nachleuchten.
Hat dazu jemand einen Ansatz für mich ?
Hier ist der Code:
ich wäre dankbar für Ideen oder Lösungsvorschläge, bin mit meinem Latein am Ende.
ich habe ein Programm geschrieben, welches per SW-PWM 4 LED`s nacheinander auf und ab dimmt.
das Ganze soll ein Drehlicht simmulieren.
Was mir noch fehlt ist eine "Art" Nachglüh-Effekt".
also, es soll die LED danach noch etwas nachleuchten.
Hat dazu jemand einen Ansatz für mich ?
Hier ist der Code:
Code:
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 20
$swstack = 20
$framesize = 12
Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output
Config Portb.3 = Output
Led1_pin Alias Portb.0
Led2_pin Alias Portb.1
Led3_pin Alias Portb.2
Led4_pin Alias Portb.3
Const Fade_up = 10
Const Fade_down = 10
Const Hold = 10
Const Pause = 5
Dim Led1 As Byte
Dim Led2 As Byte
Dim Led3 As Byte
Dim Led4 As Byte
'Auflösung 0 - 49
Dim Timerzaehler As Byte 'Maximalwerte wie LED1
Config Timer0 = Timer , Prescale = 8 'Timer konfigurieren
On Timer0 Timerroutine 'Timerinterrupt Subroutine zuweisen
Enable Timer0 'Timer aktivieren
Start Timer0 'Timer starten
Timer0 = 205 'Timer vorladen
Enable Interrupts 'Interrupt aktivieren
Portb = 0
'*** Hauptschleife *************************************************************
Do
For Led1 = 0 To 49 'aufdimmen
Waitms Fade_up
Next Led1
Waitms Hold 'halten
For Led1 = 49 To 0 Step -1 'abdimmen
Waitms Fade_down
Next Led1
Waitms Pause 'Pause
'======================================
For Led2 = 0 To 49
Waitms Fade_up
Next Led2
Waitms Hold
For Led2 = 49 To 0 Step -1
Waitms Fade_down
Next Led2
Waitms Pause
'======================================
For Led3 = 0 To 49
Waitms Fade_up
Next Led3
Waitms Hold
For Led3 = 49 To 0 Step -1
Waitms Fade_down
Next Led3
Waitms Pause
'======================================
For Led4 = 0 To 49
Waitms Fade_up
Next Led4
Waitms Hold
For Led4 = 49 To 0 Step -1
Waitms Fade_down
Next Led4
Waitms Pause
Loop
'Ende Hauptschleife
End
'*** Subs **********************************************************************
Timerroutine: 'Beginn Subroutine
Timer0 = 205
Incr Timerzaehler
If Timerzaehler = 50 Then Timerzaehler = 0 'Timerzaehler auf LED-Auflösung begrenzen
If Timerzaehler < Led1 Then Led1_pin = 1 Else Led1_pin = 0 'Vergleich Timerzähler mit LED-Wert -> LED Ein- od. Ausschalten
If Timerzaehler < Led2 Then Led2_pin = 1 Else Led2_pin = 0
If Timerzaehler < Led3 Then Led3_pin = 1 Else Led3_pin = 0
If Timerzaehler < Led4 Then Led4_pin = 1 Else Led4_pin = 0
Return
ich wäre dankbar für Ideen oder Lösungsvorschläge, bin mit meinem Latein am Ende.