
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo Paul, > ... > Beide Geräte habe ich auf 4800 Baud stehen, der CController findet > aber nicht die $ Zeichen, ob die NMEA Daten anders gesendet > werden, vielleicht im Block oder schneller? Ich vermute die Blöcke werden schneller hintereinander (also mit geringerer Pause dazwischen) gesendet - ansonsten sind 4800 Baud immer 4800 Baud! > Wenn ich die Daten zum PC sende werden sie einwandfrei angezeigt. Gut so! Mein Debugger unterstützt zwar (noch) keine serielle Kommunikation, aber ich habe nur diese paar Zeilen mal getestet: ... #lese_rma0 GET zeichen IF zeichen <> DOLLAR THEN GOTO lese_rma0 ... Wenn der "zeichen<>Dollar", dann dauert ein Schleifendurchlauf (ohne Interrupts etc.) mind. 6102 Taktzyklen also (immer bei einem 4MHz-Quarz) ca. 3.05 ms, bei "zeichen=DOLLAR" mind. 5310 Taktzyklen also ca. 2.65 ms. Das wäre nicht weiter schlimm, wenn nicht bei 4800 Baud (8n1) im "schlimmsten Fall" alle ca. 2.1 ms ein Zeichen kommen würde. Wie man leicht erkennt läuft der 8 Byte Puffer so recht schnell voll, es gehen also Zeichen verloren! Langer Rede kurzer Sinn: ohne Assembler geht es auf einer C-Control nicht, außer du schaffst es eine Flußkontrolle (RTS/CTS) zum Laufen zu bringen. Das müßte dann aber auch die Gegenseite unterstützen, was (soweit ich weiß) bei NMEA-Geräten nicht üblich ist. Cu Rene, alias Topmail |
| Antwort schreiben |