Ich Versuche gerade mittels Visual Studio 2008 eine Terminal Programm in
Basic zu schreiben. Bei meinem mC hadelt es sich um einen ATMega2560.
Die Verbindung erfolgt über USB (Com4).
Habe als ersten Versuch mal folgendes programmiert :
In VB:
Die LED soll mir nur zeigen wenn der mC einen Befehl empfangen hat.
Jedoch bekommt ich überhaupt keine Reaktion.
Kann mir jemand sagen was ich falsch mache ?
lg Dennis
Habe das bisher immer so gemacht wenn ich etwas auf dem PC ausgeben
will. Mit dem Terminal Emulator in Bascom läuft das auch wunderbar, nur
VB macht da nicht mit. Gehe daher mal davon aus das das Problem in
meinem VB code liegt.
> Open "com4:" For Binary As #4 'USB Buchse> Wie der eigentlich heißt oder bezeichnet wird ist doch> eigentlich auch egal oder ??NEIN, das ist es NICHT. Lies Dir die Dokumentation Deines
Basic-Compilers durch, die Namen, die dort die seriellen Schnittstellen
haben, haben einen SINN.
Ja das stammt ja aus einem Beispielprogramm das auf der vom Hersteller
beigelegten CD war.
Und das senden der Daten zum PC geht ja auch, zumindest mit dem Terminal
Emulator.
Fat Tony, bei allem hier noch möglichem Respekt, aber dir ist nicht mehr
zu helfen.....
Admin / Mod, bitte Thread als Beispiel für Begriffststutzigkeit und
Lernresistenz archivieren und verlinken. Danke :-)
Nun gut, der verwendete AVR hat tatsächlich vier serielle Schnittstellen
(2560), und die BASCOM-Syntax wäre auch die richtige, wenn denn die
verwendete Testplatine ihren USB-RS232-Wandler an der vierten des 2560
betriebe:
http://avrhelp.mcselec.com/configcomx.htm
Das aber wissen wir nicht.
Also, Tony: Wie der USB-RS232-Wandler auf Deiner Platine mit dem AVR2560
verbunden?
Wenn dein obiger VB-Code noch aktuell ist, tippe ich mal drauf, dass es
daran liegt, dass du für die Befehle 0x01(SOH), 0x02(STX) und 0x03(ETX)
sendet und nicht 0x31("1"), 0x32("2") und 0x33("3"). Oder andersrum
gesagt:
Du erwartest im µC ASCII-Zeichen, und sendest Steuerzeichen.
Ralf
Hm ich ging davon aus das ich es als Dezimal eingeben muss und er es
dann als Hex verschickt.
Aber wie dem auch sei , es geht beides nicht hab es eben mal
ausprobiert.
Aber wo wir gerade bei dem Thema sind, was gibt mir den Inkey() zurück
im mC ?
In der Notiz steht case 49 'ASCII Code für Taste"1"
das passt doch auch nicht.
> Hm ich ging davon aus das...
Ab hier interessiert deine Antwort wahrscheinlich niemand mehr, weil dir
garantiert irgendwann irgendwer sagt, dass du nicht von Annahmen
ausgehen sollst, sondern von der Dokumentation. Das heisst, die
FrameWork-Doku runterladen und installieren - sofern nicht bereits doch
vorhanden - und dann nachlesen, was SerialPort.Write erwartet.
Dezimal, Hexadezimal oder String.
> Aber wo wir gerade bei dem Thema sind, was gibt mir den Inkey() zurück> im mC ?
Wo wir grad beim Thema sind: Dokumentation
Ich mein das nicht böse, ehrlich. Aber es muss dir klar sein, dass
niemand für dich lesen wird, denn das kannst du selber. Nur so lernst
du. Wenn du trotz mehrmaligem Lesen dann immer noch ein Problem hast,
dann gehört das hierher, und nicht Fragen wie "Ich verwende dies und
das, wie funktioniert es".
Ralf
Ach so, ganz vergessen:
> das ich es als Dezimal eingeben muss und er es dann als Hex verschickt.
Was bitte ist denn 1, 2, 3 als Hex? 0x01, 0x02, 0x03. Was du schicken
müsstest, und was ich oben auch geschrieben habe, ist '1', '2' und '3',
also 0x31, 0x32 und 0x33, was wiederum dem Dezimalwert aus deinem
µC-Programm entspricht: 49, 50 und 51.
Ralf