mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik GPS Daten lesen, Datenlogger


Autor: gps (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe eine Verständnissfrage:

Ein Datenlogger schreibt mit 10 Hz Daten auf einen USB-Stick (UART). 
Zusätzlich soll jetzt alle 200ms ein Datensatz vom GPS Sensor ausgelesen 
werden und geschrieben werden - ebenfalls über UART.

Frage:
Wenn ich jetzt alle 200ms mit

Dim Empfangen As String * 20
Input Empfangen

auf Daten warte, kann es doch passieren, dass der GPS Sensor die Daten 
bereits abgeschickt hat und man im worst case 200ms auf den nächsten 
Datensatz warten muss.
Falls ja, wie könnte man es lösen, so dass meine gewünschte 
Schreibfrequenz eingehalten wird?

Oder sendet die GPS Module den letzten Datensatz in einer Schleife bis 
dieser geupdated wird? Ich habe keine Möglichkeit es zu prüfen, da der 
Sensor noch nicht da ist.

Danke!

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Oder sendet die GPS Module den letzten Datensatz in einer Schleife bis
>dieser geupdated wird?

Nein, nur einmal.

Autor: gps (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hätte jemand einen Denkanstoss, wie man trotzdem eine konstante 
Schreibfrequenz beibehällt? Oder geht kein Weg dran vorbei, auf die 
Daten zu warten?

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welcher GPS-Empfänger liefert Daten alle 200ms ?

Ich kenne nur GPS-Mäuse, die 1x pro Sec Daten liefern.

Dabei muss man halt auf die Daten warten.

bernd

Autor: gps (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bernd,

zum Beispiel der UP500.
http://www.fastraxgps.com/products/gpsantennamodul...

Gibt es eine Möglichkeit die Zeit zu messen, wie lange auf eine Eingabe 
gewartet wurde?

Autor: gps (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Niemand eine Idee?

Ich hatte noch folgendes überlegt:
Man wartet auf die erste Ausgabe vom UP500, dann waitms 100, Daten 
loggen und auf die nächste Ausgabe vom UP500 warten. So sollten alle 100 
ms Daten geschrieben werden, oder schwankt die Ausgabefrequenz bei den 
Dingern ebenfalls?

Danke!

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ne Idee.

Serielle eingabe als Interrupt in einen Puffer, dabei Anzahl der Bytes 
zählen.

Wenn der ausgewählete Datensatz erkannt wurde und die korrekte Länge des 
Datensatzes erreicht ist, den Datensatz zur weiteren Bearbeitung im 
Hauptprogramm freigeben.

Ansonsten erledigt dein Hauptprogramm sonstige Arbeiten.

Geht ohne Zeitmessung und bei jeder gewünschten Baudrate.

Bernd

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu beachten:

Die Übertragungszeit des ausgewählten GPS-Datensatzes kann ggf. länger 
als 100ms sein.

Auf einem Qszi anschauen !


Bernd

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieviel kosten das Modul UP500 ?

bernd

Autor: gps (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Modul kostet 23 € / Stück. Unter einer Bestellsumme von <75 € kommen 
noch 15€ Mindermengenzuschlag.

Ich habe noch zwei Fragen:
Wie kann man einen Interrupt auslösen, wenn die Daten vom UP500 
anliegen?
Ich habe keinen Oszi, lässt sich sowas auch mit einem Software-Oszi 
auswerten?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Wie kann man einen Interrupt auslösen, wenn die Daten vom UP500
>anliegen?

Gar nicht. Deine Interruptroutine (RX-Complete) liest die empfangene 
Zeichen ein und überprüft auf das Startzeichen '$'. Die nachfolgenden 
Zeichen werden bis >CR<>LF< in den Puffer eingelesen. Danach wird ei 
Flag gesetzt, das dem Hauptprogramm mitteilt, das ein NMEA-String 
vorliegt.

MfG Spess

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.