danke für Deine Tipps, aber das ist für mich alles zu hoch. Buffer, checksummen usw kenne ich alles noch nicht. Ich habe jetzt eiine Beschreibung für mein GPS-Modul. Da steht auf seite 7 genau das was ich brauche. Nur ist das glaube ich alles in C. Kannst Du mir sagen wie ich die entsprechenden Befehle in Bascom abschicken muß?
in Bascom müßte das fertig zusammengefasst und mit berechneten Checksummen so aussehen:
Ich habe die Werte so abgeändert wie sie auf Seite 7 angegeben sind.
print chr( &HB5); 'Kopfzeilen
print chr( &H62);
print chr( &H6);
print chr( &H8 );
print chr( &H6); 'Anzahl der Bytes der Botschaft = 6
print chr( &H0); '1. Byte der Botschaft
print chr( &HFA); '2.Byte Dauer der Messung 250ms = &HFA
print chr( &H0); '3.Byte
print chr( &H1); '4.Byte 1 Messungen pro Cyclus.
print chr( &H0); '5.Byte
print chr( &H0); '6.Byte 0 bedeutet: Zeiten werden in UTC angegeben
print chr( &H0F); 'Checksumme CK_A
print chr( &H94); 'CHecksumme CK_B
Dies entspricht der Abfolge der Bytes wie auf Seite 7 hier angegeben:
{0xB5,0x62,0x06,0x08,0x06,0x00,0xFA,0x00,0x01,0x00 ,0x00,0x00,
0x0F,0x94};
das ganze ist weniger kompliziert als es vielleicht zuerst aussieht.
&H.. sind die Bytes. Chr die dazugehörigen Zeichen. Diese Zeichen werden nacheinander gesendet. buffer(i) bedeutet nur das Zeichen des i-ten Byte das verschickt wird. Checksummen dienen dazu um die richtige ÜBertragung sicherzustellen. Berechnet werden sie einfach aus dem 3. bis letzten Byte das übertragen wird. Dazu musst Du Dir allerdings die Formeln ansehen wie ich sie bereits geschrieben habe. Die Checksumme ändert sich wenn Du eine andere Einstellung für die Übertragungsrate übermitteln willst.
Die Zahlen kann man natürlich auch in gewöhnlichen Dezimalzahlen angeben
&HFA = 250
statt print(&HFA); kann man also auch print(250); schreiben.
Die Übertragung der 2. Einstellung von Seite 7 erfolgt analog.
wie ich inzwischen gelernt habe ist das wohl das versenden eines Hex Codes in C. Wenn ich den Code auseinanderklamüser ist er ähnlich zu deinem, aber nicht gleich.
"Die Checksumme ändert sich wenn Du eine andere Einstellung für die Übertragungsrate übermitteln willst. "???? Ist die Checksumme von der Baudrate abhängig??
Welche Zahl ist in Deinem Text hinter dem Smilie versteckt, die 08??
Hi
habe zwischenzeitlich meinen Beitrag ergänzt. Hat sich wohl mit Deiner Antwort überschnitten.
Der Unterschied kommt dadurch zustande, dass ich dachte als Cycle wäre 4 anzugeben. Nach Seite 7 ist es aber 1.
funktioniert leider alles nicht. Hab's den ganzen Tag bearbeitet, leider ohne Erfolg. Dem GPS-Modul ist es ziemlich egal was ich Ihm schicke. Es reagiert in keiner form. Hast Du noch ne Idee woran es liegen könnte? Gibt es da Hardwareseitig irgenwas zu beachten?
habe soeben mein GPS (Conrad GPS CR4) ausgepackt und versucht mit Visual Basic vom PC aus über COM auf 4 Hz umzustellen.
Bei mir hat´s ebenfalls nicht geklappt. Weiß ebenfalls nicht woran´s liegt. Hardwaremäßig sehe ich kein Problem. NEMA-Daten kommen im PC an. Während der Befehl vom PC auf das GPS übertragen wird, tritt eine kurze Unterbrechung auf. Insofern bin ich sicher, dass die Befehle im GPS ankommen. Im Moment kann ich Dir keinen weiteren Tip geben.
Danke für Deine Hilfe. Christian. Ich bleib dran......es gibt eine Lösung. Vielleicht gehe ich mal ins "C-Forum" und frage dort ob mir jemand mal einen File in C (so wie es auf Seite 7 steht) machen kann der funktioniert. Dann hat man was zum vergleichen. Ich melde mich wenn es was neues gibt.....scheint nicht viele zu geben die sich für das Thema interessieren.
hab jetzt den ersten Fortschritt. Das umstellen auf 4 HZ funktioniert so wie Du es mir beschrieben hattest. Der Fehler war das ich deine Zeilen dafür genau so abgeschrieben hatte und da war ein Fehler drin , es fehlte einmal "print chr(&H00". Sonst war Dein Tip goldrichtig! Auch das Speichern ins SRAM funktioniert so völlig problemlos. Das ausschalten der anderen NMEA-Datensätze mit dem "Stringverfahren" funktioniert allerdings immer noch nicht. Ich bleib dran.
Lesezeichen