GPS Daten lesen, Datenlogger

Gast #1409932
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!
Gast #1410225
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
Gast #1410379
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!
Gast #1410391
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
Gast #1410395
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?
Gast #1410399
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.