-
        

Ergebnis 1 bis 7 von 7

Thema: Ct-Bot Code Problem

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2004
    Ort
    Aschbach
    Alter
    29
    Beiträge
    223

    Ct-Bot Code Problem

    Anzeige

    Hi Leute,

    ich habe vor meine Ct-Bot über Bascom zu programmieren,ihc habe dazu auch ein einfaches Program geschrieben, jedoch ist dass Problem, dass die abstandssensoren nicht aktiviert werden.
    Wäre schön wir euch mal ein Programm anschauen würdet und mir helfen könntet.


    Mfg
    Sven


    Code: [View More of this Code] [View Even More of this Code] [View Less of this Code] [Select All of this Code]
    Code:
    '*******************************************************************************
    '*                                                                             *
    '*                    Test der LEDs und der Fernbedienung                      *
    '*                                                                             *
    '*******************************************************************************
    
    $regfile = "m32def.dat"                                     ' specify the used micro
    $crystal = 16000000                                         ' used crystal frequency
    $hwstack = 32                                               ' hardware stack
    $swstack = 8                                                ' SW stack
    $framesize = 24
    
    
    
    Config Portc.0 = Output
    Config Portc.1 = Output
    Config Portc.3 = Output
    
    
    
    Dim L As Integer
    Dim Wr As Word
    Dim Wl As Word
    
    Config Adc = Single , Prescaler = Auto
    
    ' Für Motorentest
    'Ports für linken Motor
    Config Pinc.6 = Output                                      'Linker Motor Kanal 1
    Config Pind.4 = Output                                      'Linker Motor PWM
    'Ports für rechten Motor
    Config Pinc.7 = Output                                      'Rechter Motor Kanal 1
    Config Pind.5 = Output                                      'Rechter Motor PWM
    Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
    Pwm1a = 0
    Pwm1b = 0
    Tccr1b = Tccr1b Or &H2                                      'Prescaler = 8
    
    
    Clock Alias Portc.3                                         ' Clock des Schieberegisters
    Output Alias Portc.0                                        ' Datenleitung des Schieberegisters
    Store Alias Portc.1                                         ' Pin mit dem die Daten auf den Ausgang gelegt werden
    
    
    Set Store                                                   'Strobe-Pin zum Speichern auf high
    
    
    
    
    
    L = 2 ^ 0
    
    Shiftout Output, Clock, L, 1                                'Daten herausschieben
    
    Reset Store                                                 'Daten durch Strobe low/high auf den Ausgang legen
    
    Set Store
    
    
    
      Start Adc
          Wl = Getadc(0)
          Wr = Getadc(1)
    
    
     Portc 0.6 = 1
     Portd 0.4 = 1
     Portc 0.7 = 0
     Portd 0.5 = 1
    
    
    
    
          If Wl > 500 And Wr > 500 Then
    
          Pwm1a = 400
          Pwm1b = 250
    
          Else
    
          Pwm1a = 0
          Pwm1b = 0
    
    
          End If

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    48
    Beiträge
    1.254
    Hallo Sven04,

    Config Adc = Single , Prescaler = Auto
    welche Referenzspannung wird denn benutzt und soll sie dem Compiler bekannt gemacht werden?

    If Wl > 500 And Wr > 500 Then
    eine Reaktion erfolgt also nur wenn beide Werte gleichzeitig > 500 sind.

    Ein Wert von 500 entspricht ungefähr der Hälfte der Referenzspannung.

    Gruß, Michael

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2004
    Ort
    Aschbach
    Alter
    29
    Beiträge
    223
    Hi Michael,

    ich hab den Code schnell geschrieben um auszuprobierenob mein Ct-Bot funktioniert, dies mit dem Config Adc=SIngel, Prescaler=Auto hab ich aus dem RN-Controll Atmega 32 Beispiel entnommen.
    Hast du einen Korrekturvorschlag für mich?

    Mfg
    Sven

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    48
    Beiträge
    1.254
    Hallo Sven04,
    laut diesem Schaltplan ist keine externe Referenzspannung angeschlossen. Dann mußt du die interne Referenz benutzen.
    Mit:
    Config Adc = Single , Prescaler = Auto , Reference = Internal
    schaltest du die interne Referenz ein.

    Diese liegt bei ca. 2,56 Volt.

    Aber schau lieber nochmal deine Hardware durch, ob der ARef-Pin wirklich keine Beschaltung hat. Angeblich soll sonst der AD-Wandler Schaden nehmen.

    Gruß, Michael

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2004
    Ort
    Aschbach
    Alter
    29
    Beiträge
    223
    Hi Michael,

    Ich hab in meinem Schaltplan Nochmal geschaut und gesehen, dass keine Referenzspannung anliigt, also hab ich meinem Code etwas geändert, doch der Roboter macht keine Bewegung. Woran kann das liegen?
    Ich bin Ratlos auch die IR-Sensoren gehen nicht an,also man sieht keine rotes Licht im Sensor. Ich habe auch schon die Schieberegister IC's IC 6 und IC5 getaucht. Ohne Erfolg.
    Wäre nett wenn ihr mir helfen könntet.

    Gruß
    Sven

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    48
    Beiträge
    1.254
    Hallo Sven04,
    so wie ich das mitgekriegt habe, werden die Abstandssensoren mit Hilfe des Schieberegister-ICs 5 eingeschaltet.
    Die Vorgehensweise kann man im Wandfolger Programm vom 17.02.2006 (von manolli) anschauen.
    Die "procedure shiftoutsen" verdeutlicht den Vorgang.

    Gruß, Michael

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo Sven04,

    fehlt da nicht ein Schleifenbefehl LOOP. So werden die Abstandssensoren doch nur einmal abgefragt. Im c't-Bot Forum gibt es auch ein paar Bascom Beispiele. In den Beispielen werden auch die Interrupts enabled, sonst geht wahrscheinlich nix mit PWM. Sorry, bin selbst kein Bascom Experte.

    Funktioniert denn der Bot mit den Hex-Files von der c't?

    Gruß m.a.r.v.i.n

Berechtigungen

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