LED Dimmen per Software | Problem
Ich möchte gerne 1 LED per Software dimmen. Per Hardware ist nicht möglich weil die Ports schon belegt sind.
Ich wollte das ganze mit einen Timer machen.
So weit bin ich schon gekommen:
Code:
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 14745600
$baud = 9600
Config Portc.7 = Output
led Alias Portc.7
'#####Timer############
Config Timer1 = Timer , Prescale = 8
On Timer1 Int_timer1
Const Timervorgabe = 47104 ' 100 Hz
Enable Timer1
Enable Interrupts
Timer1 = Timervorgabe
Do
Loop
Int_timer1:
Timer1 = Timervorgabe
Toggle led
Return
End
Wie muss ich den Code so erweitern das die LED dynamisch von hell zu dunkel und umgekehrt leuchtet?
Ich würde mich freuen wenn mir einer weiter helfen kann.
Re: LED Dimmen per Software | Problem
Hallo,
probier es mal so:
Code:
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 14745600
$baud = 9600
Config Portc.7 = Output
led Alias Portc.7
'#####Timer############
Config Timer1 = Timer , Prescale = 8
On Timer1 Int_timer1
Const Timervorgabe = 65352 ' ~10 KHz
Dim Schwellwert As Byte, Level As Byte, Offset As Byte
Schwellwert=0
Offset=1
Enable Timer1
Enable Interrupts
Timer1 = Timervorgabe
Do
Loop
Int_timer1:
Timer1 = Timervorgabe
Incr Level
If Level=0 Then 'Level läuft etwa 40 mal je Sekunde über, dann wird Schwellwert angepasst
Schwellwert=Schwellwert+Offset
If Schwellwert=255 Then Offset=-1
If Schwellwert=0 Then Offset=1
Endif
If Level>Schwellwert Then
Set Led
Else
Reset Led
Endif
Return
End
Weder compiliert noch getestet.
Sollte in etwa 6 Sekunden von ganz hell nach aus wechseln und umgekehrt.
Gruß
Rolf