Werbung
Also ich habe die Pausen noch mal weggemacht,doch es tritt keine Änderung ein.
Also noch mal die Problemstellung ,damit mir andere vielleicht auch helfen können:Wenn ich den Code RC-Fernsteuerung mit Motoren lade ,funktioniert Kanal 1(Rckanal) langsamer ,als wenn ich nur einen Kanal im Programm habe, und der zweite Kanal (Lala) zuckt nur.
Zur Information :ich benutze ein rp5 Cassis mit den zwei Motoren.Das bedeutet ,der Kanal 1 ist für vor und zurück ,und der Kanal 2(Lala) ist für das Drehen.
Frage warum funktionert das nicht??
Also wenn Du mich immer noch fragst, dann meine ich solltest Du die Kanäle trennen - also der eine sagt das es vor oder zurück geht, und der andere Kanal wird zu dem anderen mit eingerechnet um ein drehen zu ermöglichen.
Jetzt scheint es mir so zu sein, als wenn deine beiden Kanäle sich überschneiden weil sie beide auf PWM1a und PWM1b direkt wirken.
Ja ich habe sie jetzt mal so ähnlich getrennt.Ich habe bei Case Rckanal nur die Sachen für PWM 1a gelassen und bei Lala nur PWM 1b.
Jetzt funktionieren beide Kanäle doch wenn ich gleichzeitig betreibe dreht der eine Motor auf einmal anders herum . Warum ????
Wie meinst du das mischen sonst ??Hättest du einen Code ??
Poste mal den jetzigen Code hier per codeeinfügefunktion bei erweiterte Antwort - dann braucht man sich den nicht runterladen.
Leider habe ich keine Code - habe auch nur den von der RN-Control...
Hier :
Code:$regfile = "m32def.dat" $crystal = 16000000 $baud = 9600 $hwstack = 32 $swstack = 32 $framesize = 32 Config Portd.7 = Output Config Portd.7 = Output Config Pinc.6 = Output 'Linker Motor Kanal 1 Config Pinc.7 = Output 'Linker Motor Kanal 2 Config Pind.4 = Output 'Linker Motor PWM Config Pinb.0 = Output 'Rechter Motor Kanal 1 Config Pinb.1 = Output Config Pind.5 = Output 'Rechter Motor PWM Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up Pwm1a = 0 Pwm1b = 0 Tccr1b = Tccr1b Or &H02 'Prescaler = 8 Dim Rckanal As Word Dim Lala As Word Sound Portd.7 , 400 , 450 Sound Portd.7 , 400 , 250 Sound Portd.7 , 400 , 450 Wait 2 Main: Waitms 10 Pulsein Rckanal , Pind , 2 , 1 'Messung Zeit zwischen 1 und 0 Pegel Waitms 10 Pulsein Lala , Pind , 3 , 1 'Messung Zeit zwischen 1 und 0 Pegel Waitms 10 Select Case Rckanal Case 90 To 140 Portc.6 = 1 Portc.7 = 0 Portd.4 = 1 Pwm1a = 600 Waitms 10 Case 160 To 200 Portc.6 = 1 Portc.7 = 0 Portd.4 = 1 Pwm1a = 600 Waitms 10 Case Else Portc.6 = 1 Portc.7 = 0 Portd.4 = 1 Pwm1a = 0 Waitms 10 End Select Select Case Lala Case 90 To 140 Portb.0 = 1 Portb.1 = 0 Portd.5 = 1 Pwm1b = 600 Waitms 10 Case 160 To 200 Portb.0 = 1 Portb.1 = 0 Portd.5 = 1 Pwm1b = 600 Waitms 10 Case Else Portb.0 = 0 Portb.1 = 1 Portd.5 = 1 Pwm1b = 0 Waitms 10 End Select Goto Main
Versuche mal jeweils im case else die Portd.4 + 5 = 0 zu setzen. PWM ist dann nicht nur 0, sondern ganz am Port aus.
Wenn das klappt dann denke ich ist es das gleiche was ich mal hatte. Der Zähler vom PWM zählt irgendwie falschrum - glaube so kann man das sagen![]()
Bei 0 volle Pulle![]()
Hängt irgendwie zusammen mit:
Compare A Pwm = Clear Up, Compare B Pwm = Clear Up
...aber so weit bin ich noch nicht.
Lesezeichen