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,Brauche etwas Nachhilfe,wenn ich das so schreibe:
u.s.w.fährt mein Bot auf Kontakt vorn normal zurück,so wie er soll,leider macht er das nicht im nachfolgenden Code,wo habe ich einen Fehler gemacht?Code:$crystal = 16000000 $regfile = "m32def.dat" $framesize = 32 $swstack = 32 $crystal = 16000000 Config Portc.0 = Output 'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C) Config Pinc.6 = Output Config Pinc.7 = Output Config Pinb.1 = Output Config Pinb.2 = Output Config Pinb.3 = Output Config Pinb.4 = Output Config Pinc.0 = Input Config Pinc.5 = Input Config Pina.7 = Input 'Ein Pin (PA0) wird als Eingang definiert Porta.7 = 1 'Interner Pullup Widerstand ein Config Portc.0 = Output 'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C) Config Pina.7 = Input 'Ein Pin (PA0) wird als Eingang definiert Porta.7 = 1 'Interner Pullup Widerstand ein '######################################################################################################' Do 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 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 35 Sound Portd.7 , 200 , 900 'Ton Portc.6 = 1 'Richtung zurück Portc.7 = 0 'Richtung zurück Portd.4 = 1 'Linker Motor ein/aus Portb.0 = 1 'bestimmt Richtung rechter Motor Portb.1 = 0 'bestimmt Richtung rechter Motor
u.s.w. wo ist mein Fehler????Code: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 Config Pina.5 = Inpu Pina.5 = 0 Pina.7 = 1 Sharp Alias Porta.5 Taster Alias Porta.7 'PWM Frequenz Initialisieren Tccr1a = &B10100010 '9 Bit PWM Voller Takt Tccr1b = &B10000010 'Teiler = 8 PWM = 1951 Hz bei 9 Bit Dim I AS Word '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Do Waitms 35 Print " vorwerts" Motor1_in1 = 0 'Drehrichtung Motor 1 Motor1_in2 = 1 'Drehrichtung Motor 1 Motor2_in1 = 1 'Drehrichtung Motor 2 Motor2_in2 = 0 'Drehrichtung Motor 2 For I = 0 To 125 'geschwindigkeit max.511 Pwm1a = I Pwm1b = I Waitms 25 Next I Wait 36 'lang vorwerts wenn kein Sigmal If Pina.6 = 0 And Pina7. = 1 Then Sound Portd.7 , 200 , 900 'Ton Else 'Bremsen Pwm1a = 0 Pwm1b = 0 Wait 1 Motor1_in1 = 0 'Drehrichtung Motor 1 Motor1_in2 = 0 'Drehrichtung Motor 1 Motor2_in1 = 0 'Drehrichtung Motor 2
Danke
Geändert von radbruch (27.07.2012 um 05:25 Uhr)
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)
@klaro1971: Bitte benutze den Code-Button um die Quelltexte hier rein zu posten. Das hast du in Deinem ersten Beitrag vorblidlich angefangen
Das macht das ganze etwas übersichtlicher
Sorry, mein Fehler.Habe nurnoch ein Knoten im Kopf da ich mit den Code nicht weiterkomme.Ich dachte das bei soviel Spezialisten die die tollsten Dinge bauen mal einer dabei ist der mir weiterhelfen kann aber scheinbar wissen die auchnicht weiter.
Lesezeichen