PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : rnmega2560 mit visual basic ansprechen



goara
06.06.2007, 20:06
hallo.

ich habe ein rnmega2560 und wuerde dieses gerne ueber ein visual basic programm ansprechen...

bis jetzt kann ich es ueber die bascom console ueber das usb kabel ansprechen... so wies im datenblatt steht:

Config Com4 =9600 , Synchrone =0 , Parity = None , Stopbits =1 , Databits =8 , Clockpol =0
Open "com4:" For Binary As #4 'USB Buchse
......
B = Waitkey(#4)
.......
z.b. wenn ich in der console verschidene buchstaben druecke werden bestimte funktionen ausgelöst...
wei kann ich das gleiche von einem visual basic programm aus steuern ,
muss ja nicht sien das tasten gesendet werden, sondern einfach iregdnwie ??

danke schon mal..

goara
07.06.2007, 16:52
noch ne info aus m datenblatt falls das was bringt... der usb lauft ueber TTL UARTS (RX/TX) (was auch immer das ist )
weis denn keiner was ?? :(

dremler
07.06.2007, 17:48
ich mache grade sowas ähnliches für die facharbeit....wie man tasten abfängt kann ich grad net sagen aber du wirst sicher was finden ...auch sollte dieses tut helfen: http://www.activevb.de/tutorials/tut_com/com.html wenn du fragen hast schreib sie her ich versuch zu helfen...

edit: eventuell mal durchlesen...http://www.wer-weiss-was.de/theme161/article2512915.html

edit2: achso usb? ich weiß nicht aber du sprichst ja den COM4 an da dürfte das doch gehen oder? musste mal probieren...ich machs über RS232

peterfido
07.06.2007, 17:54
Ich habe Dir im Forum von vb-paradise.de geantwortet.

edit: Welchen USB Chip nutzt Du? Ich nutze den FTDI, suche aber nach einem gleichwertigen, bloss in einem größeren Gehäuse, damit er in die normalen Sockel passt.

goara
07.06.2007, 18:05
@ dremler
geht ueber n usb kabel.. aber is ein virtueller com port....
@ peterfido
hehe... bist auch in beiden foren... :)
hm usb chip hab ich keine ahnng.. is n rnmega 2560 da is schon irgendeiner drauf..

dremler
07.06.2007, 18:16
dann müsste es doch gehen ? oder ? die daten werden doch automatisch usb gerecht umgewandelt?

uwegw
07.06.2007, 19:12
Der USB-Chip auf dem 2560er-Modul meldet sich (wie du schon sagtest) unter Windows als virtueller COM-Port an. Du brauchts daher ne lib/Treiber/wasauchimmer, um mit VB auf nen COM-Port zu schreiben. Sollte sich finden lassen...

goara
07.06.2007, 19:27
ja ich kann dann das ganze als blackbox betrachten ,einfach nur den comport ansprechen und die tatsächliche funktionsweise des ganzen ignorieren..

Steffen44
16.06.2007, 19:31
ich habe das ganze im Excel umgesetzt mit dem MsCOMM Controll ist zwar VBA aber immerhin ist man im Excel hoch flexibel wenn man die Daten verwalten möchte. Als µC habe ich auch den ATMEGA2560 verwendet mit der USB Anbindung. Dazu reicht es den Simulierten CommPort einfach dem MSComm Controll mitzuteilen.

Ich lese 16 Analoge und ca. 30 Digitale Ports in das Excel ein und erstelle mir daraus meine Messwerttabelle.


Im Visual Basic 2005 Express habe ich irgendwo noch ein Beispiel aber da steht nur drinn wie man empfängt und nicht sendet.

Wer also brauchbaren Code für das VB 2005 hat .. ich bin interressiert. Ein eigenes kleines Windows Programm wäre wirklich zu geil.

Gruß
Steffen

goara
19.06.2007, 16:10
@ steffen44

mit vb 2005 ist es ganz einfach:
einfach in der toolbox -> komponenten -> serail port auf die form ziehen...
dann rechts unten bei den eigenschften die baudrate usw einstellen...
und dann noch den code hier:



SerialPort.Open() 'port oeffnen
SerialPort.Write("blablubb, wasauchimmer") ' senden an uC
SerialPort.Close() ' hinterher port schiessen


fertig....

in vb 6.0: (anleitung von peterfideo)

Du erstellst ein Projekt. Gehst dann auf Komponeneten. Dort das Microsoft Comm Control anhaken. Dieses dann auf die Form ziehen. Jetzt kannst du den Comport parametrieren. z.B. Port 3 mit 19200 Baud:


Private Sub Form_Load()

With MSComm1
.CommPort = 3
.Settings = "19200,n,8,1"
.DTREnable = False
.RTSEnable = False
.PortOpen = True
.InBufferSize = 50
End With

End Sub
Daten senden:

MSComm1.Output = "Nachricht an uC"
Daten Empfangen:

Private Sub MSComm1_OnComm()
lblOverrun.Visible = False
lblRXOver.Visible = False
Dim s As String
Dim i As Integer
Select Case MSComm1.CommEvent
Case comEvReceive
Text2.Text = Text2.Text & MSComm1.Input


End Select
End Sub

Wobei das Event erst bei vollem Datenpuffer(mscomm1.InBufferSize) ausgelöst wird.

Alternative wäre per Timer ständig gucken, ob was im Puffer ist und dann auslesen.

Wichtig: Port bei Programmende schließen.

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
MSComm1.PortOpen = False
End Sub

Steffen44
19.06.2007, 19:33
ohh cool das ist wirklich einfach .... das werde ich mal probieren.
Der ganze Code ist meinem VBA Code im Excel fast ähnlich vermutlich weil es das selbe "Comm Controll" benutzt.

Ich werde es gleich am Wochenende probieren und melde mich dann nochmal obs gefunzt hat ^^

Danke und Gruß
Steffen

peterfido
19.06.2007, 22:14
Irgendwie kommt mir das ganze bekannt vor...:-) Die Routinen sind aus meinem VB6 Programm, d.h. Du musst evtl für VB2005 einige Anpassungen vornehmen.

goara
20.06.2007, 16:30
hab dich doch als quelle hingeschrieben :))
fuer vb2005 brauchst fast gar nix mehr machen... nur oeffnen senden shcliessen. feddisch...