Guten morgen Cali,
zeig hier doch mal bitte Deinen Code. Vor allem das Öffnen Deiner COMM4 und das CommEvent.
Peter
Hallo,
ich versuche schon seid geraumer Zeit VB mit dem uC kommunizieren zu lassen, nur es funktioniert einfach nicht. Bin echt schon etwas am verzweifeln.
Als Hardware benutze ich
http://www.myavr.de/shop/article.php?artDataID=41
zum Proggen Bascom
zum visualisieren Visual Basic 2005 pro
Habe den aktuellsten Usb-treiber drauf, welcher einen virtuellen com 4 Port eingerrichtet hat.
Würde mich echt freuen, wenn jmd schon mal auf diesem Wege einen Erfolg verzeichnen konnte und vielleicht mal ein einfaches kommentiertes Beispiel Veröffentlichen könnte was auch auf anhieb funktioniert.
Als "einfaches" Beispiel stelle ich mit eine Windowsanwendung mit Button und Textbox vor. Mit dem Button kann man eine Led anschalten und über die Textbox wird ein Analogwert eingelesen und angezeigt.
gruß Cali
Guten morgen Cali,
zeig hier doch mal bitte Deinen Code. Vor allem das Öffnen Deiner COMM4 und das CommEvent.
Peter
Guten morgen holzi,
Der Bascom Code zum obrigen Beispiel sieht so aus.
Mit VB habe ich zwar schon einmal visualisiert, das war aber zum einen eine SPS welche ich über ein Steuerelement eines OPC-Servers agesprochen habe. Deshalb habe ich auch kein schimmer wie das in VB Funktionieren könnte.Code:$regfile = "m8def.dat" $crystal = 1000000 $hwstack = 40 $swstack = 30 $framesize = 60 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , _ Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 Config Lcd = 16 * 2 Cursor Off Cls Ddrb = &B00000001 'Led Ausgang Dim Messvolt As Word Dim Volt As Single Dim Volt_a As String * 10 'Dieser wert soll in VB angezeigt werden Const Faktor = 0.0048828125 Do Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc Messvolt = Getadc(0) Volt = Messvolt * Faktor Volt_a = Fusing(volt , "#.#") If Len(volt_a) = 3 Then Volt_a = " " + Volt_a + "V" Else Volt_a = Volt_a + "V" End If Locate 1 , 1 Lcd Volt_a Waitms 250 Loop End
gruß Cali
Hi Caligula,
schau Dir mal das Tutorial von der folgenden Seite an.
http://www.activevb.de/tutorials/tut_com/com.html
Das ist zwar für VB6, aber es kann einfach umgesetzt werden.
Peter
huhu holzi,
danke für den Tip aber diese Seite hatte ich auch schon ergoogelt, gelesen und getestet. Leider ohne Erfolg.
Glaube ohne ein richtiges beispiel bekomme ich das nie hin
gruß Cali
Guten morgen,
ich weiss wirklich nicht, wo Dein Problem ist. Nach dem folgenden Prinzip musst Du vorgehen:
Schnittstelle öffnen: SerialPort1.Open()
Daten senden: SerialPort1.Write("Hallo")
Daten lesen: Wert = SerialPort1.ReadLine (Dim Wert As String)
Hier ein Link zu diesem Thema, denn da hatte auch jemand das Problem mit der seriellen Schnittstelle unter VB 2005.
https://www.mikrocontroller.net/topic/49847
Ich hoffe, Du kommst nun weiter.
mfg Peter
Huhu,
Habe mir das ganze mal angeschaut jetzt kommt wieder was neues hinzu das "SerialPort"-Element.
Dieses Element lässt sich über die Eigenschaften konfigurieren.
Jetzt bleibt nur noch die Frage offen, wie ich den Port öffne und und sinnvoll mit dem MC rede. Glaube das der MC mit einem "Hallo" garnix anfangen kann.
-> wo und was muss ich jetzt in diesen Code tippen, damit der "volt_a"-String aus dem MC ausgelesen wird und in der Textbox angezeigt wird.
gruß caliCode:Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click End Sub Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged End Sub End Class
Das DataArrived (oder Received(weiß grad nicht genau)) Ereignis wird bei mir nur ausgelöst, wenn der Empfangspuffer voll ist. Ich frage bei sowas per Timer regelmäßig den Füllstand des Puffers ab und wenn der >0 ist, dann lese ich ihn aus. Allerdings progge ich in VB6. VB2005 nehme ich nur notgedrungen, wenn ich was fürs Handy progge...
Wenn das Herz involviert ist, steht die Logik außen vor! \/
Öhm, wieso probierst du nicht einfach mein Beispielprogramm im Wiki...?
https://www.roboternetz.de/wissen/in...rn_des_AVR%27s
Viele Grüße, William
-> http://william.thielicke.org/
Huhu Willa,
hab das Programm mal angetestet, bin wie folgt vorgegeangen.
mit Bascom in den MC geschrieben und Bacom geschlossen.Code:$regfile = "m8def.dat" $crystal = 1000000 Dim A As Byte Do A = Inkey() If A > 0 Then Select Case A Case 49 'Das ist der ASCII Code für Taste "1" Sound Portd.7 , 400 , 450 Print "Taste 1 wurde gedrückt!" Case 50 'Das ist der ASCII Code für Taste "2" Sound Portd.7 , 400 , 550 Print "Taste 2 wurde gedrückt!" Case 51 'Das ist der ASCII Code für Taste "3" Sound Portd.7 , 400 , 650 Print "Taste 3 wurde gedrückt!" Case 114 'Das ist der ASCII Code für Taste "r" Print "Reset..." Goto 0 End Select End If Loop
Portd.7 mit einem summer verbunden.
Dein Beispielprogramm gestartet und "com4" gewählt und "port öffnen" Taste gedrückt.
Wenn ich jetzt die 4 "Bedientaster" betätige passiert garnix.
Es scheint aber ein Signal Auf der MySmartUsb-Platine anzukommen. (Kurzes aufleuchten der roten Led bei Tasterdruck)
gruß Cali
Lesezeichen