wodka
01.01.2006, 19:32
'#################################
'# Software Pulsweitenmodulation #
'#################################
$regfile = "M16def.dat"
$crystal = 1000000
Ddrd = &B00000001 'PD7, PD6,PD5 als Ausgänge festlegen, rest Eingang
Do
Enable Interrupts 'Interrupts Global einschalten
Enable Timer0
Config Timer0 = Timer , Prescale = 64
On Timer0 Ontimer0
Enable Timer1
Config Timer1 = Timer , Prescale = 1
On Timer1 Ontimer1
Dim Reverse As Bit
Dim Helligkeit As Byte
Helligkeit = 255
'###Deklarationen###
Led_ro Alias Portd.0 'LED Rot
Do
Loop
Ontimer0:
Toggle Led_ro
If Led_ro = 1 Then
Timer0 = 255 - Helligkeit
Else
Timer0 = Helligkeit
End If
Return
Ontimer1:
If Helligkeit = 255 Then
Set Reverse
End If
If Helligkeit = 1 Then
Reset Reverse
End If
If Reverse = 0 Then
Incr Helligkeit
End If
If Reverse = 1 Then
Helligkeit = Helligkeit - 1
End If
Return
Loop
Moin Moin,
so ich habe diesen Code hier im Forum gefunden und habe ihn so geändert, das auf Portd.0 eine LED immer ein und ausfaded. Sieht sehr schön aus, nur ich möchte eine PWM , circa 50 % sprich Helligkeit = 255-120 oder so ein und auschalten können mit einem Taster. Wenn ich den befehl
If porta.1 = 0 then
..
..
End if
dann dreht die PWM völlig durch.. Wie schalte ich eine PWM ein und aus..
Schöne Grüße
'# Software Pulsweitenmodulation #
'#################################
$regfile = "M16def.dat"
$crystal = 1000000
Ddrd = &B00000001 'PD7, PD6,PD5 als Ausgänge festlegen, rest Eingang
Do
Enable Interrupts 'Interrupts Global einschalten
Enable Timer0
Config Timer0 = Timer , Prescale = 64
On Timer0 Ontimer0
Enable Timer1
Config Timer1 = Timer , Prescale = 1
On Timer1 Ontimer1
Dim Reverse As Bit
Dim Helligkeit As Byte
Helligkeit = 255
'###Deklarationen###
Led_ro Alias Portd.0 'LED Rot
Do
Loop
Ontimer0:
Toggle Led_ro
If Led_ro = 1 Then
Timer0 = 255 - Helligkeit
Else
Timer0 = Helligkeit
End If
Return
Ontimer1:
If Helligkeit = 255 Then
Set Reverse
End If
If Helligkeit = 1 Then
Reset Reverse
End If
If Reverse = 0 Then
Incr Helligkeit
End If
If Reverse = 1 Then
Helligkeit = Helligkeit - 1
End If
Return
Loop
Moin Moin,
so ich habe diesen Code hier im Forum gefunden und habe ihn so geändert, das auf Portd.0 eine LED immer ein und ausfaded. Sieht sehr schön aus, nur ich möchte eine PWM , circa 50 % sprich Helligkeit = 255-120 oder so ein und auschalten können mit einem Taster. Wenn ich den befehl
If porta.1 = 0 then
..
..
End if
dann dreht die PWM völlig durch.. Wie schalte ich eine PWM ein und aus..
Schöne Grüße