Ja das ist die eine Möglichkeit.
So kannst du es machen.
Ja das ist die eine Möglichkeit.
So kannst du es machen.
Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]
Ja nur wo anfangen und wie ich bin total überfordert.
Erstmal musst du dir überlegen, wie deine Übertragung aussehen soll.
Also die Reihenfolge deiner 50 Variablen.
Dann würde ich deinen Atmega auf 16Mhz laufen lassen. Dann hast du einen geringeren Übertragungsfehler bei höherer Geschwindigkeit.
Kannst du mal den Teil deines VB Programms zeigen, in dem du die Serielle schnittstelle ansprichst?
Damit ich sehe was du schon hast. Welche VB Version nutzt du?
Deinen Bascom Code würde ich auch gerne dazu sehen.
Gruß Daniel
Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]
Per Vb habe ich nur ein kleines Programm mit Eingabefenster weches sich auf meinen Com4 verbindet und Daten senden und empfangen kann.
Mehr ist das nicht :/ Kann aber heute Abend den Code hier eintragen. Ist aber nichts anderes wie Hterm oder ein anderes Terminal.
Den Mega auf 16Mhz laufen lassen würde ich gern ,.. ich laß nur das man den mit falschen Settings kaputt machen kann und da ich mich da nicht ran traue als Anfänger,...
Bascom Code habe ich nur das aus der Hilfe Datei :/ ich habe schon das eine oder andere geschrieben oder besser gesagt abgekupfert.
Leds und Taster etc. das ist auch klar verständlich aber ein Umwandlung oder Berechnung ist schon ne nummer heisser.
Wir nutzen VB2008 dafür haben wir Code snippets mit dem wir Werte aus dem Speicher auslesen können vom Flugsimulator und in der Software wiedergeben können.
Aktuell scheitert es einfach daran die Daten in Bascom zu verarbeiten. Den String aus VB senden stellt eigentlich kein Problem dar.
Ich habe eben mal gegoogelt und die Befehle MID, Instr zum Thema gefunden aber damit kann ich noch nichts anfangen.
Ich werf einfach mal 2-3 Zeilen aus nem altem Projekt in die Runde
Zuerst mußt du dir eine Buffer variable anlegen..
In meinem Fall war dieser 100 Bytes groß und hatte ein String Overlay,Code:Dim Uart_buffer(100) As Byte Dim Uart_buffer_str As String * 100 At Uart_buffer Overlay
was nichts anderes bedeutet, als dass Uart_buffer_str nur eine Art Maske ist.
Damit habe ich den split Befehl direkt auf den Buffer angewendet.
Das war mein String-Array..20 Strings a 10 Zeichen..Code:Dim Uart_buffer_splitstr(20) As String * 10 Dim Uart_buffer_splitctr As Byte
Uart_buffer_splitctr bekommt später den Rückgabewert von split() ab.
Wenn du deinen Buffer gefüllt hast und dein End-Byte kommt..(ich nehm dazu gerne CR&LF)..Code:Uart_buffer_splitctr = Split(uart_buffer_str , Uart_buffer_splitstr(1) , ",")
kannst du den String splitten.. split(dein_buffer_string,dein_string_array(start_i ndex),"dein_separator")
Die Rückgabe von split ist die Anzahl der gefüllten Array Felder.
Mit Val() kannst du dann deine Strings in Zahlen konvertieren.
Ich hoffe das hilft bissl weiter.
Gruß,BastelWastel
Nam et ipsa scientia potestas est..
Hi,
achso ich dachte, dass auch die VB kommunikation noch nicht 100% klappt.
Die Lösung von BastelWastel setzt, wie ich das sehe vorraus, das du aus VB heraus als bytes sendest. Was mir da nicht ganz klar ist, was passiert wenn ein Wert > 256 ist. Oder sehe ich das falsch?
Gruß Daniel
Geändert von DanielSan (06.04.2011 um 22:45 Uhr)
Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]
Nein, das Beispiel wäre für einen String
Nam et ipsa scientia potestas est..
Lesezeichen