Kannst Du uns etwas mehr Infos liefern? Was heißt denn, er fährt nicht wie er soll? Hat sich die Hardware geändert? bzw. Beschaltung? So wie es aussieht, ändern sich auch die Ports, mit den Du was ansteuerst oder?
Kannst Du uns etwas mehr Infos liefern? Was heißt denn, er fährt nicht wie er soll? Hat sich die Hardware geändert? bzw. Beschaltung? So wie es aussieht, ändern sich auch die Ports, mit den Du was ansteuerst oder?
Hallo 5Volt-Junkie,also im oberen Codeausschnitt fährt mein Bot irgendwo gegen oder der Scharpsensor erkennt was,dann bremst er,fährt zurück und sucht sich ein neuen Weg.Da er aber RB35 1:100 Motoren eingebaut hat,ist er zu schnell und wenn er bremst,kippt er nach vorn.Deswegen habe ich den zweiten Code.Damit kann ich die Geschwindigkeit einstellen,je nach belieben.Mein Proplem ist nun,das er nichtmehr auf mein Pumper oder auf den Scharpsensor reagiert.Beide sind an Porta.,im oberen Codeausschitt reagiert er so wie er soll auf
Code:
If Pina.7 = 1 Then
Portc.0 = 1 'Pin wird auf High, also 5V geschaltet
Else
b.z.w.auf
if PinA.6 = 0 Then.
Mein Proplem ist eigendlich simpel doch ich komme nicht drauf und meine Suche hatte bisher kein Erfolg.I
Ich möchte nur das PinA7 auf mein Bumper reagiert so wie im ersten Codeausschnitt.
Danke
Geändert von klaro1971 (03.08.2012 um 22:41 Uhr)
Wird wohl am Pumper liegen
Abgesehen davon, ein Inpu wird auch nicht compilieren und es macht keinen Sinn im gezeigten Code auf Input-Register zu schreiben. Das hat zwar bei manchen Controllertypen eine Funktion, nämlich den Ausgangspin schnell zu toggeln, dürfte hier aber nicht das Ziel sein.
Nagut,ich meine Bumper also diese kleinen RedschalterMein Proplem ist ja das ich es nicht hinbekomme das mein Bot,wenn er wo gegenfährt zurücksetzt.Er wird wogegenfahren denn meine Scharp habe ich gestern geröstet.Mir bleibt nurnoch mein Pumper.Doch ich finde einfach kein Ansatz,kann mir nicht vorstellen das ich der erste mit diesen Proplem bin!!!
Mit IF xxxxTHEN geht es nicht,doch womit?
Code:
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung
Config Pina.7 = Input 'Für Tastenabfrage
Porta.7 = 1 'Pullup Widerstand ein
Config Pind.5 = Output
Motor1_pwm Alias Portd.5
Config Pinc.6 = Output
Motor1_in1 Alias Portc.6
Config Pinc.7 = Output
Motor1_in2 Alias Portc.7
Config Pind.4 = Output
Motor2_pwm Alias Portd.4
Config Pinb.0 = Output
Motor2_in1 Alias Portb.0
Config Pinb.1 = Output
Motor2_in2 Alias Portb.1
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up
Pwm1a = 250 'max.1023
Pwm1b = 250 'max.1023
Tccr1b = Tccr1b Or &H02
Do
Start Adc
Dim Ws As Word
Ws = Getadc(7)
Portc.6 = 1 'Richtung vorwärts
Portc.7 = 0 'Richtung vorwärts
Portd.4 = 1 'Linker Motor ein/aus
Portb.0 = 1 'bestimmt Richtung rechter Motor
Portb.1 = 0 'bestimmt Richtung rechter Motor
Portd.5 = 1
If Pina.7 = 1 Then
Portc.0 = 1 'Pin wird auf High, also 5V geschaltet
Else
Portc.0 = 0 'Pin wird auf Low, also 0V geschaltet
Waitms 20
Sound Portd.7 , 200 , 900
Waitms 250
Portc.6 = 0 'Richtung vorwärts
Portc.7 = 1 'Richtung vorwärts
Portd.4 = 1 'Linker Motor ein/aus
Portb.0 = 0 'bestimmt Richtung rechter Motor
Portb.1 = 1 'bestimmt Richtung rechter Motor
Portd.5 = 1
Wait 1 'xx lang Richtung zurück fahren
Portd.4 = 0 'Stop rechter Motor
Portd.5 = 0 'Stop linker Motor
Wait 1 'xx lang drehen
Portc.6 = 0
Portc.7 = 1
Portd.4 = 1 'Links drehen ein/aus
Portb.0 = 1
Portb.1 = 0
Portd.5 = 1
Wait 1
End If
Loop
End
Geändert von klaro1971 (03.08.2012 um 22:40 Uhr) Grund: Forumregeln
Ich fand halt "Pumper" lustig, andererseits hattest Du den ja auch mal richtig geschrieben.
Allerdings tät's Dich auch weiterbringen, wenn Du auf Hinweise reagierst, wie der Hinweis des Schreibens auf Eingangsregister.
In Deinem jetzt gezeigten Code hast Du das gleich dreimal drin. Mit welchem Sinn denn ?
Dann sind Aliase zu sehen, die auf Sensoren zeigen, allerdings sind dort die Ausgänge ver-aliast, hier würde man eher Aliase auf Eingänge erwarten, mal ganz abgesehen davon ich nicht wüsste, wie ein Alias auf zwei Bezeichner korrekt compilieren sollte. Ich würde mich an Deiner Stelle mit den Grundlagen befassen, sonst gibt's da noch mehr freigesetzten magischen weissen Rauch...
Du hast recht,ich sitze auch schon ziemlich lange daran.Ich sollte mal ne Auszeit nehmen.Ich spiele mir mein alten Code wieder drauf den damit läuft er ja(nur halt zu schnell) und fange nochmal von vorne an
Ja der Pumper,früher als meine Oma noch lebte hatten wir unsere eigene Sprache, der Staubsauger war der Feuerbesen,der Fohn die Laiserkanone....
Ich danke Dir für dein Tip.
Gruß Klaro
Hallo,ich komme nochimmer nicht weiter,wiso reagiert
Code:
If Pina.7 = 1 Then
Portc.0 = 1
Wait 1
nicht im Code?Gibt es eine andere Möglichkeit den Code zu unterbrechen für eine Minute so das es dann weiter läuft?
Code:
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
Config Pind.5 = Output
Motor1_pwm Alias Portd.5
Config Pinc.6 = Output
Motor1_in1 Alias Portc.6
Config Pinc.7 = Output
Motor1_in2 Alias Portc.7
Config Pind.4 = Output
Motor2_pwm Alias Portd.4
Config Pinb.0 = Output
Motor2_in1 Alias Portb.0
Config Pinb.1 = Output
Motor2_in2 Alias Portb.1
Config Pina.7 = Input
Pina.7 = 1
Tccr1a = &B10100010 '9 Bit PWM Voller Takt
Tccr1b = &B10000011 'Teiler = 8 PWM = 1951Hz bei 9 Bit
Dim I As Word
Sound Portd.7 , 400 , 450 'BEEP
Sound Portd.7 , 400 , 250 'BEEP
Sound Portd.7 , 400 , 450 'BEEP
Wait 3
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''
Do
Print " Richtung1"
Motor1_in1 = 1 'Drehrichtung Motor 1
Motor1_in2 = 0 'Drehrichtung Motor 1
Motor2_in1 = 1 'Drehrichtung Motor 2
Motor2_in2 = 0 'Drehrichtung Motor 2
For I = 0 To 250 'max.511
Pwm1a = I
Pwm1b = I
Waitms 1
Next I
'Bremsen
Pwm1a = 0
Pwm1b = 0
Wait 20
Motor1_in1 = 0 'Drehrichtung Motor 1
Motor1_in2 = 0 'Drehrichtung Motor 1
Motor2_in1 = 0 'Drehrichtung Motor 2
Geändert von klaro1971 (03.08.2012 um 22:11 Uhr)
Lesezeichen