Hallo Steve
Danke dir für die Ausführung.
Wie ich das verstanden habe, habe ich als Test mal so im Code umgesetzt:
Code
$regfile = "m32def.dat"
$crystal = 16000000
Dim Messwert1 As Word
Dim Messwert2 As Word
Config Adc = Single , Prescaler = Auto
Start Adc
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Pwm1a = 0
Pwm1b = 0
Do
'ADC Auswertung von 126 bis 255 (Vorwärts) und direkte Umrechnung in 255 Bit PWM
Messwert1 = Getadc(0) / 4
Messwert2 = Getadc(1) / 4
'Vorwärts:
If Messwert1 >= 126 Then
Messwert1 = 255 - Messwert1
Messwert1 = Messwert1 * 2.0078
Messwert1 = Pwm1a
End If
'Stop:
If Messwert1 = 127 Then
Gosub Stop1
End If
'Rückwärts:
If Messwert1 <= 126 Then
Messwert1 = 127 - Messwert1
Messwert1 = Messwert1 * 2.0078
Messwert1 = Pwm1a
End If
Loop
End
Stop1:
Pwm1a = 0
Waitms 25
Return
Alles anzeigen
Getestet habe ich den Code noch nicht, werde ich aber mit nem terminal oder LCD Testen.
Meintest du es so?
Natürlich wird neben dem PWM in jeder IF Abfrage noch ein Ausgangs-Pin hinzu kommen welche dann auf 1 oder 0 steht.
Messwert1 bedeutet sowas wie Motor 1, oder Linke Seite Antrieb.
Die Rechte seite oder Messwert2 habe ich jetzt nicht dazu geschrieben, da diese Parallel aussehen würde.
Sind da meine Gedankwege schon so richtig?
Grüße und danke
Denis