Hallo Forumskollegen, Also ich kann bis jetzt schon "relativ" viel mit dem Mega8 anfangen, bin aber Programmierneuling. Kann ADC auslesen, LCD ansteuern, Leds blinken lassen usw.....Auch ein bisschen mit RX,Tx spielen. Ich verwende zuhause einen Datenlogger für den Modellbau. Dieser gibt mir konstant mit 4800 Baud einen Datenstrom aus. Es werden Spannung, Temperatur und Höhe ausgegeben. Ich habe euch ein Bild mitgebracht, in dem man sehen kann , wie der Datenstrom aussieht,wenn ich den Logger am Pc anschließe in Win Xp.Ich hoffe, man kann was erkennen. http://img174.imageshack.us/img174/349/dscn4757bc9.jpg Meine Frage ist jetzt, wie bekomme ich genau einen Wert aus dem Datenstrom, mal angenommen die Nummer 191, die steht für die Temperatur, in den Mega8 in Bascom. ich meine, dass der Mega8 genau diesen Wert über Rx einliest? Welcher Befehl? Und wie mache ich es, wenn ich drei Werte haben will? Die 87 steht für die Spannung, und die 27 für die Höhe (glaube ich). ich will die Daten einfach dann verarbeiten, und an ein LCD ausgeben. Ich danke euch sehr!!! MFG Peter
Das was Du Datenstrom nennst ist im Allgemeinen ein Telegramm. Die Aufgabe besteht nun darin aus einer laufenden Übertragung die einzelnen Telegramme zu selektieren. Ist dies geschafft, können die einzelnen Datenpunkte für Temperatur, Spannung und Höhe aus dem Telegramm per Arrayzugriff entnommen und weiterverarbeitet werden. Wie es in Bascom geht kann ich nicht sagen, da ich Bascom noch nie benutzt habe.
Na irgendwie muss doch eine Signalisierung statt finden. Vielleicht auch vom PC aus. Vielleicht vordert er auch Daten zyklisch an. Vielleich gibt es ja auch ein Startzeichen...Bitte noch mal informieren oder direkt an RXD und TXD messen.
Sind die 33 und 16 immer gleich, auch wenn sich die übertragenden Daten ändern? Das könnten die Zeichen für die Snchronisation sein. Dann kommen 38 und 27, als 16-Bit interpretiert macht das die 9755 für AD16. Dann ne Null als Trennzeichen, AD5 und temp_1, und Prüfsumme 136 (wie die berechnet wird, müsste man mal ausprobieren). Ob die Synchronisation so läuft, könntest du mit dem Terminalprogramm testen (und gleich noch die Daten mitschneiden). Wenn da keine Daten ankommen, hat vielleicht Alexander richtig getippt, und der PC fordert die Daten jeweils an. PS: wieso machst du den Screenshot mit der Digicam?
>Ich habe euch ein Bild mitgebracht, in dem man sehen kann , wie der >Datenstrom
aussieht,wenn ich den Logger am Pc anschließe in Win Xp.
Beim nächsten Mal drückst du bitte die "Druck"-Taste auf deiner
Tastatur, öffnest "Paint" und fügst die Zwischenablage ein.
Das Bild speicherst du dann als Jpeg ab.
irfanview kann die Zwischenablage importieren...
Wie schon oben geschrieben: Guck dir mal an, ob dein Datenlogger von
sich aus sendet, oder ob der PC dazu irgendwas losschickt.
Das kann man am besten mit einem Terminalprogramm (such mal nach "Hterm"
in der hiesigen Codesammlung).
Hallo, danke schon mal für die Antworten. Screenshot, na klar, dachte gar nicht daran, beim nächsten mal! Also der Datenlogger sendet 100%ig ALLEINE. Wenn ich ihn am Terminal anschließe, kommen da auch Daten an. Die 33 und 16 sind immer konstant.Die ändern sich nicht, aber alle anderen ändern sich jede Sekunde (Am Logger so eingestellt). Also sollten wir (Ihr) jetzt wissen, wie die Synchronisation läuft. Vielleicht sollte ich mal kleiner anfangen und versuchen, die ganzen Zahlein einzulesen und am LCD ausgeben. Dann sollte ja im LCD zb stehen: 33 16 38 27 0 87 0 191 136 136. Könnte das gehen? Aber mit welchen Befehlen bloß nur? Die Nuller sind aber keine Trennzeichen, da könnten noch andere Spannungen ect ausgegeben werden. Mfg Peter
Wie das Telegramm aufgebaut ist, sollte in der Doku vom Logger stehen. Gast
Hallo, hier ist noch ein Bild vom Windows Terminal. http://img182.imageshack.us/img182/1831/testll2.jpg also wer kann mir jetzt helfen und mir "ungefähr" erklären, wie ich die Werte in Bascom einlesen kann? Übrigens gibt es keine technische Anleitung zu dem Datenlogger. MFG Peter
Nimm als Terminalprogramm lieber HTerm. Da kann man dann auch was mit den Daten anfangen...(Sonderzeichen sind nicht besonders gut zu lesen.) Bascom unterstützt doch bestimmt Stringverarbeitung (ich vermute mal, da jeder Basic-Dialekt, den ich kenne, sowas unterstützt). Dein Datenstrom (Telegramm oder String) hat vermutlich eine feste Länge (Anzahl an Zeichen). Da kann man sich eine Statemachine bauen: Man setzt einen Zähler auf 0 Wenn der Zähler 0 ist, wartet man auf die 33 und zählt bei Empfang den Zähler um eins hoch. Ist der Zähler 1 und das nächste empfange Byte eine 16, ist die Synchronisation erfolgreich; der Zähler wird wieder hochgezählt. Sonst muß man den Zähler wieder auf 0 setzen. Wenn der Zähler jetzt auf 2 steht, dann kann man das empfangene Byte entsprechend auswerten (z.B. in die Temperatur umrechnen). Bei jedem empfangenen Byte zählt man den Zähler hoch, bis er einen Endstand erreicht hat (Telegramm ist zuende) und wieder auf 0 zurückgesetzt wird. Das dürften ein paar if-Abfragen sein... Wie man in Bascom die serielle Schnittstelle anspricht weiß ich nicht. Dafür gibt es aber das Handbuch und diverse Forenbeiträge, sowie inzwischen ein eigenes Bascom-Forum...
Hallo, so, mittlerweile habe ich mehr herausgefunden. Der Datenlogger sendet immer einen String(?) mit 21 Bytes. Hier ein Screenshot davon: http://img120.imageshack.us/img120/6443/telegrammul2.jpg Die ersten fünf bytes sind identisch mit den 6-10 bytes, das müsste der Header sein. Danach wirds spannend, denn danach kommen die Werte, die mich interessieren. 5C (92) müsste die Spannung sein, 01(001) und 04(004) müsste die Temperatur sein, 26(038) und 2B(043) müsste die Höhe sein. Nun sind wir ja schon einen Schritt weiter. Wie kann ich nun den String am besten einlesen und die drei Daten dann unter jeweils einem Byte abspeichern? Danke euch allen
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.