-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Programm läuft so,aber so nicht...

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    16.01.2012
    Ort
    Leinefelde
    Beiträge
    36

    Programm läuft so,aber so nicht...

    Anzeige

    Hallo,Brauche etwas Nachhilfe,wenn ich das so schreibe:

    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.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:
    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
    u.s.w. wo ist mein Fehler????

    Danke
    Geändert von radbruch (27.07.2012 um 05:25 Uhr)

  2. #2
    RN-Premium User Roboter Genie Avatar von 5Volt-Junkie
    Registriert seit
    06.03.2008
    Alter
    30
    Beiträge
    946
    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?

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    16.01.2012
    Ort
    Leinefelde
    Beiträge
    36
    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)

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von klaro1971 Beitrag anzeigen
    nichtmehr auf mein Pumper
    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.

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    16.01.2012
    Ort
    Leinefelde
    Beiträge
    36
    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

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    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...

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    16.01.2012
    Ort
    Leinefelde
    Beiträge
    36
    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

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    16.01.2012
    Ort
    Leinefelde
    Beiträge
    36
    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)

  9. #9
    RN-Premium User Roboter Genie Avatar von 5Volt-Junkie
    Registriert seit
    06.03.2008
    Alter
    30
    Beiträge
    946
    @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

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    16.01.2012
    Ort
    Leinefelde
    Beiträge
    36
    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.

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Programm läuft, aber....
    Von BoGe-Ro im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 15.06.2010, 23:07
  2. Asuro hat gelaufen läuft jetzt aber nicht mehr.
    Von Asuroneuling im Forum Asuro
    Antworten: 3
    Letzter Beitrag: 22.06.2009, 20:55
  3. Antworten: 4
    Letzter Beitrag: 22.01.2006, 05:42
  4. PWM Steller mit LCD, aber zähler läuft nicht
    Von scream!!!! im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 14.09.2005, 08:21
  5. Antworten: 3
    Letzter Beitrag: 15.08.2005, 17:41

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •