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!
>Oder sendet die GPS Module den letzten Datensatz in einer Schleife bis >dieser geupdated wird? Nein, nur einmal.
Hätte jemand einen Denkanstoss, wie man trotzdem eine konstante Schreibfrequenz beibehällt? Oder geht kein Weg dran vorbei, auf die Daten zu warten?
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
Hallo Bernd, zum Beispiel der UP500. http://www.fastraxgps.com/products/gpsantennamodules/500series/up500/ Gibt es eine Möglichkeit die Zeit zu messen, wie lange auf eine Eingabe gewartet wurde?
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!
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
Zu beachten: Die Übertragungszeit des ausgewählten GPS-Datensatzes kann ggf. länger als 100ms sein. Auf einem Qszi anschauen ! Bernd
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?
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.