ja...der Summer tuts wohl an der Stelle auch
Dann programmiere den doch einfach raus.
Ich würde die Pausen beim einlesen des signals noch auskommentieren.
Ich weiß sonst auch nicht weiter.
Also ich steuer ein rp5 Chassis an.Dies bedeutet ,dass ich beim ersten Kanal zwei Motoren drehe (für vor und zurück).Desshalb kann ich nicht einen Motor abklemmen.Den ersten Motor würde ich dann, nachdem er ja anscheinend funktioniert mit dem Signal, einfach abklemmen.
Meiner wird auch schon sehr warm.hat damals meinen Motortreiber gegrillt
Habe ich nicht dafür den Summer (PortD.7) ???Da du keine LED zur Anzeige des "run" vom µC in diesem Programm hast, sieht man eventuell auch nicht das er mitresetet??
Was soll ich jetzt machen?? Der resettet nicht automatisch.
ja...der Summer tuts wohl an der Stelle auch
Dann programmiere den doch einfach raus.
Ich würde die Pausen beim einlesen des signals noch auskommentieren.
Ich weiß sonst auch nicht weiter.
Geändert von HeXPloreR (02.01.2013 um 21:39 Uhr)
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.
wenn ich das so mache :
und dann einmal den Kanal 1 bewege ,dann läuft der Motor zwar an,aber ich kann ihn nicht mehr stoppen .Genau so läuft es mit Kanal 2 auch . Häää ??????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 = 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 = 0 Waitms 10 End Select Goto Main
Lass doch einfach mal die Werte von den 2 Kanälen über Print an die Konsole zurückgeben und schau dir
an, was die für Werte annehmen... sowas hilft ungemein bei der Fehlersuche.
Sowas kannst auch mit den anderen werten mal machen um die zu kontrollieren.
und bei...
müssen da nicht unterstriche zwischen die wörter ? meckert der nicht beim kompilieren ?Compare A Pwm = Clear Up
D.7 ist doppelt configuriert ganz am Anfang.
... und die ausgänge der motoren...
sind die absichtlich bei 2 Servostellungen identisch geschaltet ?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
Lesezeichen