Moin!
Ich hab, wie schon oben beschreiben, vor einen weichen Blinker in Bascom Avr zu programmieren. Hab es erst mit an warten aus probiert aber dann sieht das sehr unrealistisch aus. Deswegen meine Frage wie : Kriege ich diesen Blinker weich hin? Ich meine, dass er sozusagen langsam mit einer niedrigeren Helligkeit angeht, bis zur Maximalhelligkeit weitergeht und dann langsam dunkler bis schkießlich aus geht.
Danke schon mal.
Gruß
Pascal
Bascom AVR "weicher" Blinker
Re: Bascom AVR "weicher" Blinker
Moin Moin!
Ich hab jetzt eine Lösung für mein Problem gefunden. Man muss die Led einfach immer ganz schnell ein und aus schalten und das nacheinander immer in längeren Schritten, dann wird sie langsam heller. Man kann das narürlich auch umgekehrt machen, dass man die Led langsam ausgehen lässt. Ich poste hier mal den Code für einen weichen Blinker:
$regfile = "m8def.dat"
$crystal = 1000000
Ddrd = &B00010000
Dim Tw As Bit
Do
If Pind.4 = 1 Then
If Tw = 0 Then
Tw = 1
Else
Tw = 0
End If
End If
Portd.6 = Tw
Waitms 10
Portd.6 = 0
Portd.6 = Tw
Waitms 20
Portd.6 = 0
Portd.6 = Tw
Waitms 30
Portd.6 = 0
Portd.6 = Tw
Waitms 40
Portd.6 = 0
Portd.6 = Tw
Waitms 50
Portd.6 = 0
Portd.6 = Tw
Waitms 600
Waitms 50
Portd.6 = 0
Portd.6 = Tw
Waitms 40
Portd.6 = 0
Portd.6 = Tw
Waitms 30
Portd.6 = 0
Portd.6 = Tw
Waitms 20
Portd.6 = 0
Portd.6 = Tw
Waitms 10
Portd.6 = 0
Loop
End
Das ist er. Die if funktion ist übrigens für einen Taster der bei jedem Druck die Variable Tw umkehrt,also den Blinker immer ein und ausschaltet.
Jetzt kann ich endlich das komplette Programm für mein Löschfahrzeug schreiben.
Gruß
Pascal
Ich hab jetzt eine Lösung für mein Problem gefunden. Man muss die Led einfach immer ganz schnell ein und aus schalten und das nacheinander immer in längeren Schritten, dann wird sie langsam heller. Man kann das narürlich auch umgekehrt machen, dass man die Led langsam ausgehen lässt. Ich poste hier mal den Code für einen weichen Blinker:
$regfile = "m8def.dat"
$crystal = 1000000
Ddrd = &B00010000
Dim Tw As Bit
Do
If Pind.4 = 1 Then
If Tw = 0 Then
Tw = 1
Else
Tw = 0
End If
End If
Portd.6 = Tw
Waitms 10
Portd.6 = 0
Portd.6 = Tw
Waitms 20
Portd.6 = 0
Portd.6 = Tw
Waitms 30
Portd.6 = 0
Portd.6 = Tw
Waitms 40
Portd.6 = 0
Portd.6 = Tw
Waitms 50
Portd.6 = 0
Portd.6 = Tw
Waitms 600
Waitms 50
Portd.6 = 0
Portd.6 = Tw
Waitms 40
Portd.6 = 0
Portd.6 = Tw
Waitms 30
Portd.6 = 0
Portd.6 = Tw
Waitms 20
Portd.6 = 0
Portd.6 = Tw
Waitms 10
Portd.6 = 0
Loop
End
Das ist er. Die if funktion ist übrigens für einen Taster der bei jedem Druck die Variable Tw umkehrt,also den Blinker immer ein und ausschaltet.
Jetzt kann ich endlich das komplette Programm für mein Löschfahrzeug schreiben.
Gruß
Pascal