- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 21

Thema: Wer findet den Fehler, Belohnung

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.08.2008
    Ort
    Graz
    Beiträge
    521
    ISR:
    Timer 3: alle 10ms
    Messerdrehzahl: max 200 Impulse/s, Regelung in ISR von Timer 3 alle 0.25s
    2x Fahrmotoren je max 166 Impulse/s, Regelung in ISR von Timer 3 alle 0.125s, Regelung beider Fahrmotoren gleichzeitig aber zeitlich versetzt zu Messerdrehzahl
    1 UART über ISR bei 9200Baud
    1x Kontrolle vom Vorderrad, ca 2 Impulse/s

    I2C und zweiter UART werden gepollt.

    Ich hatte die Zeiten im Simulator gemessen, bzw Anzahl der Takte verglichen. Die Regelungen und 90% aller Funktionen sind unter 1ms erledigt. Die Positionsberechnung liegt bei 2.7ms.
    Bis auf 2 mathematischen Operationen sind alle in Fixkommaarithmetik.
    Wirklich lange (bis 1-3s) dauert die A-Stern Berechnung, da wird der Roboter gestoppt.

    Timer 3 regelt alle zeitkritischen Funktionen, dort werden Flags gesetzt wann die Messerdrehzahl, die Fahrmotoren, Daten über Bluetooth raus, oder wann die Odometrie berechnet wird, praktisch der Taktgeber fürs gesamte Programm.
    Standard Zeiteinheit dafür ist 0.25s, dh 1x in 0.25s werden alle regelmäßigen Funktionen abgearbeitet. Ausgenommen Fahrmotoren mit 0.125s und Positionsberechnung mit 1s. Aber auch die haben ihr freies Zeitfenster im 0.25s Abschnitt.

    Da ist noch einiges an freier Rechenleistung übrig.



    Debugger ist leider keiner vorhanden, bisher kam ich immer mit Anzeigen im LCD und setzen der LEDs als Ablaufkontrolle aus.

    LG!
    alles über meinen Rasenmäherroboter (wer Tippfehler findet darf sie gedanklich ausbessern, nur für besonders kreative Fehler behalte ich mir ein Copyright vor.)

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.712
    Zitat Zitat von damfino Beitrag anzeigen
    ... Da ist noch einiges an freier Rechenleistung übrig ...
    Klingt gut - ausser, dass es nicht so läuft wie es soll. Zumal ich da meine Bedenken hatte, weil der 2560 nur mit 16 MHz kann, der 1284er dagegen mit 20 MHz. Also 25% mehr Tempo.

    Dumme Frage: MUSS denn der 2560er sein? Wenn die "alte" Version mit I²C und zwei 1284ern störungsfrei läuft und der Umbau auf eine Platine nicht klappt - und diese ziemlich zähe Fehlersuche - da würde ich bei der Zwei-Platinen-Lösung bleiben. Nebenher (während der Robby läuft) kannst Du ja die Sache vielleicht interessehalber mit zwei Minimotörchen weiter treiben. "Vieles vom Code ist praktisch identisch zum Referenzcode..." - kenn ich auch. Und dann läufts nicht wie "immer". Sorry, dass ich momentan keine Idee habe wie es weitergeht.

    Jedenfalls viel Erfolg. Sozusagen mit einer oder mit zwei Platinen.

    Nachtrag zum letzten Post:
    UART pollen dauert mir viel zu lange, nochdazu mit 9600 Bd. ISR mit FIFO und Ringspeicher für RX und TX, läuft bei mir vom 328er zum 1284er selbst mit 1,25 MBd (UBRR = 1) - weil beide mit 20 MHz tickern und da wirken sich Zeitfehler nur in der Höhe der Quarztoleranzen aus *gg*.
    Geändert von oberallgeier (12.08.2015 um 18:15 Uhr) Grund: Maulen über langsame UART
    Ciao sagt der JoeamBerg

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.08.2008
    Ort
    Graz
    Beiträge
    521
    Die 2 Stück 1284 hatten ein paar Nachteile:
    1) Der Datenaustausch wurde immer umfangreicher und bremste schließlich das System aus. So ist vorgesehen das man den Roboter übers Tablet/Smartphone fernsteuern kann. Mit den zusätzlichen Daten wäre es kritisch geworden
    2) Konnte nicht so viel wie erwartet auf den 2. Kontroller auslagern, erstens wegen Punkt 1 noch mehr Daten, zweitens hatte ich sicherheitskritische Bereiche wie Motorsteuerung lieber direkt angesteuert. Wenn man den Motor stoppen will und gerade dann geht das I2C nicht ist es weniger lustig.
    3) Debuggen vom Hauptkontroller war sehr schwer, der hatte direkt nur 2 Leds, die LCD Anzeige lief über den Nebenkontroller. Es waren zwar schon einige Standard Debug Anzeigen vorgesehen, aber es fehlte immer etwas.

    Bei einem großen Kontroller geb ich einfach eine Zeile für LCD Ausgabe rein und fertig, muss nicht jedesmal 2 Programme aufeinander abstimmen.
    Es war eigentlich nur eine Zwischenlösung da mir die Pins ausgegangen sind, und die liefen beide auch nur mit 16Mhz.
    Die Arduino Platine war dann auch billiger als der Neukauf der 1284.

    Zurückgehen auf den alten Stand hatte ich mir schon überlegt, müsste die alte Platine aber erst reparieren.
    Wahrscheinlich liegt der Fehler an irgendeiner Kleinigkeit

    LG Werner
    alles über meinen Rasenmäherroboter (wer Tippfehler findet darf sie gedanklich ausbessern, nur für besonders kreative Fehler behalte ich mir ein Copyright vor.)

Ähnliche Themen

  1. Findet den Fehler
    Von jok3r im Forum Arduino -Plattform
    Antworten: 6
    Letzter Beitrag: 04.04.2015, 13:59
  2. Compiler findet i bewährt Deklarationen neue Fehler (gelöst)
    Von oberallgeier im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 22.10.2008, 14:25
  3. Wer findet den Programmfehler? ..
    Von Lenox im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 25.02.2007, 13:03
  4. Wer findet den Trick??
    Von Roboter n00b im Forum Kopfnüsse / Wissensquiz
    Antworten: 10
    Letzter Beitrag: 06.07.2005, 23:00
  5. Wo findet mann Documentationen?
    Von rnhvw im Forum Robby CCRP5
    Antworten: 0
    Letzter Beitrag: 11.07.2004, 21:05

Berechtigungen

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

LiFePO4 Speicher Test