Sorry fürs Doppelposting, aber sonst wird es unübersichtlich.
Das mit dem Rest ist mittlerweile auch gelöst. Nun wollte ich die LED mit dem Taster2 auch dimmen per PWM. Soweit habe ich es geschafft. Nun dimmt die LED bei Tastendruck einmal von hell nach dunkel und wieder von dunkel nach hell. Er soll aber solange weiter hin und her dimmen, bis ich die Taste erneut drücke. Wie geht das?

Grüße
Code:
'Standard Einstellungen
$regfile = "m8def.dat"
$crystal = 3686400
$baud = 9600
'Out- und Inputs einrichten
Config Portb.3 = Output
Led Alias Portb.3
Config Pind.2 = Input
Taster Alias Pind.2
Portd.2 = 1
Config Pind.3 = Input
Taster2 Alias Pind.3
Portd.3 = 1
'Timer für PWM und Laufzeit einrichten
Config Timer1 = Timer , Prescale = 64
On Timer1 Main
Config Timer2 = Pwm , Compare = Clear , Prescale = 1
Ocr2 = 0
'ADC einrichten
Config Adc = Single , Prescaler = Auto
Start Adc
'INTs und Timer aktivieren
Enable Timer1
Enable Interrupts
'Konstanten und Variablen deklarieren
Const Timervorgabe = 7936
Dim W As Integer
Dim Zeit As Integer
Dim Zeitvorgabe As Integer
Dim Helligkeit As Integer
Helligkeit = 150
Zeit = 1
'Hauptprogramm
Do
If Taster = 0 Then
If Getadc(0) < 17 Then
W = 17
Else
W = Getadc(0)
End If
Zeitvorgabe = W / 17
If Ocr2 <> 0 Then
Timer1 = Timervorgabe
Print "Neustart"
Else
Ocr2 = Helligkeit
Enable Timer1
End If
End If
If Taster2 = 0 Then
For Helligkeit = 150 To 0 Step -1
Ocr2 = Helligkeit
Waitms 10
Next
For Helligkeit = 0 To 150
Ocr2 = Helligkeit
Waitms 10
Next
End If
Loop
Main:
If Zeit < Zeitvorgabe Then
Zeit = Zeit + 1
Print "Timer läuft"
Timer1 = Timervorgabe
Else
Ocr2 = 0
Zeit = 0
Timer1 = Timervorgabe
Disable Timer1
End If
Return
Lesezeichen