-
        

Ergebnis 1 bis 5 von 5

Thema: Mini-Segway mit Basic programmieren - Problem!!!

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    30.04.2010
    Beiträge
    11

    Mini-Segway mit Basic programmieren - Problem!!!

    Anzeige

    Hey Leute!

    ich baue gerade an einem Mini segway und habe mich dafür in die Baskom Basic Programmierung eingearbeitet. Der Segway steuert sich ja dadurch, dass er auf die Sensorwerte, die ihm ein Gyro und ein Beschleunigungssensor mitteilen auswertet. Soweit ist alles gut. Ich verwende als controller einen Atmega 32 und habe gestern gelesen, dass mit Basic das auslesen eines sensorwertes bis zu 300ms dauert! Nun wollte ich ja mehrere Messwerte mitteln um dann mit dem Segway zu reagieren. Jetz weiß ich nicht genau wie ich das Problem lösen soll. Ich habe gelesen man könnte auch Assembler Code mit in das Programm einbauen. Allerdings habe ich davon keine Ahnung und als ich mir das angeschaut habe war ich ziemlich verwirrt. Wie ist es denn mit den werten, wenn ich die in einer Variablen ablegen, wie initialisiere ich den die, ich kann mit dem Assembler code ja nicht auf die in der Basicumgebung initialisierten zugreifen und andersrum oder? Wie muss ich meine Werte hierfür abspeichern. Oder hat jemand ne bessere Idee was ich hier machen könnte?
    Vielen Dank für eure Hilfe!
    Viele Grüße
    Andreas

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    aaalso ... die 300ms sind deutlich übertrieben, ja, die Routine getadc ist etwas lahmer als direkt die Register auszulesen, was die schnellste Methode ist.
    Die schnellste Methode den ADC auszulesen ist di Daten linksbündig und nur den MSB, sprich ein Byte zu holen und das ganze noch im free running Mode mit Interrupt bei Sample ... dann können einige kHz Samplerate erreicht werden ... wird bei Dir aber vermutlich nicht gehen, da Du ja mehrere Analogeingänge brauchst.

    Dabei ist zu beachten, dass der AVR ATMega32 prinzipiell nur einen (!!) einzigen AD-Wandler (ADC) hat. In der Kosequenz, wenn mehrere Kanäle benötigt werden wird dieser eine ADC auf den jeweils jetzt gebrauchten Eingang umgeschaltet. Dann braucht er erstmal noch ne Zeit um den Messwert zu ermitteln, wodurch durch die Schalterei und dann Messerei eben Zeit und somit Samplerate verloren geht.

    Man kann Assembler Code direkt zwischen die Basiczeilen einbauen, das ist kein Problem (Suchbegriff in der Bascom Hilfe: $asm), es wird Dich nur nicht direkt weiter bringen. Zum Einen ist es Käse ASM einzubauen nur um ein paar Register anzusprechen, das kann man unter Bascom auch direkt tun, das schenkt sich praktisch nix, außer das der Code hinterher auch noch lesbar ist. Die Abfrage des ADC-Wertes kann man ebenso direkt aus den Registern und per Overlayvariable ergibt sich auch kaum Geschwindigkeitsverlust gegenüber ASM. Um die Verzögerung für das Wechseln des ADC-Kanales wirst Du aber hardwaretechnisch nicht herum kommen.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2006
    Ort
    Karlsruhe/München
    Alter
    27
    Beiträge
    587
    Frage: Seit ihr von Adveisor?

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    Adveisor ist kein Zeitraum, was die Frage nach der Zeitspanne ziemlich sinnlos macht, oder?

    Oder meinst Du dies:

    http://www.vocabulix.com/konjugation/sein.html
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2006
    Ort
    Karlsruhe/München
    Alter
    27
    Beiträge
    587
    Vitis?? Nix kapito was du meinen...
    http://www.ewt.ei.tum.de/adveisor/index.php?lang=de
    Die basteln das nämlich... und auch das Anmeldedatum passt... desshalb frage ich...

    Wenn ihr von Adveisor seid, dann geht in die Fachschaft und schnappt euch das Regelungstechnikskript vom Prof. Buzz.
    Nochwas: Solange ihr könnt wechselt von Basic auf C, vor allem bei zeitkritischem Regelroutinen. Die Performance wird es euch mehr als danken!

Berechtigungen

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