PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kommunikation zwischen Hard- und Software



MAxK
26.07.2005, 08:20
Hallo,

ich will meinen AVR vom PC aus kontrollieren können.
Als Beispiel dient dies(am richtigen rojekt befindet sich mehr Hardware als nur 3 Taster)
Nehmen wir an:
Am AVR sind 3 Schalter angeschlossen.
Ist Taster 1 gedrückt, sendet der AVR diesen Code 499
Ist Taster 2 gedrückt, sendet der AVR diesen Code 959
Ist Taster 3 gedrückt, sendet der AVR diesen Code 996

Jetzt soll ein VB6-Programm diesen Code folgendermaßen auswerten.
1. Stelle soll in Variable "a" geschrieben werden.
2. Stelle soll in Variable "b" geschrieben werden.
3. Stelle soll in Variable "c" geschrieben werden.

Ich habe gedacht ich mache das wie folgt:

eingang=mscomm1.input
a=mid(eingang,1,1)
b=mid(eingang,2,1)
c=mid(eingang,3,1)

warum funktioniert dies aber NICHT????

DAnke für eure Hilfe

PicNick
26.07.2005, 08:46
Man müßte sehen, wie und auf welche weise du diesen Code auf die Reise schickst.
Und die Detailfrage: WAS funktioniert nicht ?

MAxK
26.07.2005, 13:05
Hallo,
in Bascom habe ich auch drei Variablen a,b,c.
Mein Code sieht dann so aus:
Print a;b;c;
das funktionert auch. Wenn ich mir das im Terminalprogramm angucke dann steht im ungedrückten Zustand 999
wird Taster 1 gedrückt --> 499

Was Funktioniert nicht?
Es funktioniert in meinem VB-Programm überhaupt nix (;
Ich bekomme zwar den Code 499 in einer Textbox angezeigt.
Will ich nun aber eine Stelle auslesen; zb die 1 dann wird die auch ausgelesen ABER nur einmal, d.h. es erscheint die 4
drücke ich dann Taster 2 müsste dann eine 5 erscheinen. Das funktioniert nicht. Der gesendete Code ist dabei auch richtig --> 959 .
Aber in der Textbox in der die 4 steht , bewegt sich nix!!?

Gruß MAx

PicNick
26.07.2005, 13:11
BasCom seitig scheint das ok.
Mit dem VB muß ich dich leider den Wölfen überlassen, hab ich keinen Schimmer von nix.

26.07.2005, 14:00
Hallo

Dann zeig uns doch mal deine Empfangsroutine in VB .

Gruß
Dieter

MAxK
26.07.2005, 18:03
Hallo,

aktuell siehts so aus (ich habe schon verschiedenes versucht)

Gruß und vielen Dank

Private Sub MSComm1_OnComm()

Select Case MSComm1.CommEvent
Case comOverrun: StatusBar1.Panels(1).Text = "Status: Störung O.V"
Case comRxOver: StatusBar1.Panels(1).Text = "Status: Störung R.O"
Case comEvReceive: eingang = MSComm1.Input
End Select
Text3 = eingang
Text1 = Text1 + Mid(eingang, 1, 1)

MAxK
26.07.2005, 19:51
Wie löst ihr eigentlich eine Verbindung zwischen PC und µC. Ich bin doch bestimmt nicht der einzige der nicht den AVR an einen PC hängt.

Gruß Max
Ich würde mich über Antworten freuen (; ich sitze schon länger ratlos davor und weis nicht mehr weiter...
Danke Danke für euere Antworten (:

26.07.2005, 21:07
Hallo

Wie hast du deine mscoom1 denn eingestellt. Speziell den MSComm1.RThreshold Wert. setze den mal auf 3.

Wenn du unter lösen meinst, die COM wieder zu schliessen, dann mit

'COM Port schliessen
MSComm1.PortOpen = False

Am besten unter Form_unload oder eine eigene Schaltfläche.

Gruß
Dieter

MAxK
26.07.2005, 21:43
Hallo Gast,

danke für den tip ich werds mal ausprobieren. Mit lösen habe ich das Problem gemeint. Also andere Vorschläge/Ansätze für dieses Problem (;

MAxK
26.07.2005, 21:50
Hat leider nicht geklappt ):
Könntest ihr/du mir einen Codeschnipsel geben, wie ihr/du es machen würden/würdest