GPS Daten lesen, Datenlogger

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren