hat der M32 wirklich PWM-Kanäle auf D.4 und D.5 ?
Ja.
So ,nach langem Probieren klappt es endlich.
Hier mein Code.Mit Kanal 1 fahre ich vor und zurück und mit dazugeschaltetem Kanal 2 drehe ich links und rechts.
Code:
$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
$hwstack = 32
$swstack = 32
$framesize = 32
Config Portd.7 = Output
Config Pind.2 = Input ' Signal 1(a) vom RC-Empfänger
Config Pind.3 = Input ' Signal 2(b) vom RC-Empfänger
Config Portc.6 = Output 'Motor links
Config Portc.7 = Output 'Motor links
Config Portb.0 = Output 'Motor rechts
Config Portb.1 = Output 'Motor rechts
Config Portd.4 = Output 'PWM links
Config Portd.5 = Output 'PWM rechts
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 8
Dim Drehrichtung As Word
Dim Geschwindigkeit As Word
Dim Schub As Word
Dim Gerade As Word
Dim Lala As Word
Declare Sub Motorsteuerung
Sound Portd.7 , 400 , 450
Sound Portd.7 , 400 , 250
Sound Portd.7 , 400 , 450
Wait 2
Do
Pulsein Geschwindigkeit , Pind , 2 , 1 'vor / zurück
Pulsein Drehrichtung , Pind , 3 , 1 'links / rechts
Call Motorsteuerung
Loop
End
Sub Motorsteuerung
Select Case Geschwindigkeit
Case 90 To 140
Schub = 650
Gerade = 8
Print "Vorwärts"
Case 160 To 200
Schub = 650
Gerade = 2
Print "Rückwärts"
Case Else
Schub = 0
Print "Stop"
End Select
Select Case Drehrichtung
Case 90 To 140
Portc.6 = 1
Portc.7 = 0
Portb.0 = 1
Portb.1 = 0
Lala = Schub + 100
Pwm1a = Lala
Pwm1b = Lala
Case 160 To 200
Portc.6 = 0
Portc.7 = 1
Portb.0 = 0
Portb.1 = 1
Lala = Schub + 100
Pwm1a = Lala
Pwm1b = Lala
Case Else
Select Case Gerade
Case 8
Portc.6 = 0
Portc.7 = 1
Portb.0 = 1
Portb.1 = 0
Pwm1a = Schub
Pwm1b = Schub
Case 2
Portc.6 = 1
Portc.7 = 0
Portb.0 = 0
Portb.1 = 1
Pwm1a = Schub
Pwm1b = Schub
Case Else
Portc.6 = 0
Portc.7 = 0
Portb.0 = 0
Portb.1 = 0
Pwm1a = Schub
Pwm1b = Schub
End Select
End Select
End Sub
Lesezeichen