Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mal wieder Excel/VB und RS232

Forumthread: Mal wieder Excel/VB und RS232

Mal wieder Excel/VB und RS232
30.05.2007 12:13:59
Matthias
Hallo!
Nachdem ich nun 2 Wochen vergebens probiert habe Daten aus einem Mikrocontroller-EEPROM (MSC1210, AT24C256) über die RS232-Schnittstelle zu einem PC zu senden und via Excel-Makro in eine Tabelle einzutragen, wende ich mich an euer kompetentes Forum. ich verwende Office XP (2001); COM1:2400, N, 8, 1 und die RSAPI.
Hier die einzutragenden Werte (Beispiele aus dem Hyperterminal):
0.080 [vom µC mit printf("%.3f \n",zahl1) gesendet]
24.84
11:34
26.05.2007
0.071
24.98
12:03
26.05.2007
Die Übertragung via Hyperterminal funktioniert einwandfrei. Jetzt mein VB-Quelltext mit dem ich die Daten zwar in die Tabelle eintragen kann, diese jedoch durcheinanderkommen.
Option Explicit
Declare

Sub OPENCOM Lib "RSAPI" (ByVal ComParameters$)
Declare 

Sub CLOSECOM Lib "RSAPI" ()
Declare 

Sub TIMEINIT Lib "RSAPI.DLL" ()
Declare 

Function TIMEREAD Lib "RSAPI.DLL" () As Long
Declare 

Function STRREAD Lib "RSAPI" (ByVal D$) As Integer
Declare 

Sub SENDBYTE Lib "RSAPI" (ByVal B%)
Declare 

Sub STRLENGTH Lib "RSAPI" (ByVal B%)
Declare 

Function READBYTE Lib "RSAPI.DLL" () As Integer
Declare 

Sub TIMEOUT Lib "RSAPI" (ByVal ms%)
Declare 

Sub Delay Lib "RSAPI.DLL" Alias "DELAY" (ByVal ms%)
Dim ZDat$, zeile, i, wert, spalte


Sub Makro1()
OPENCOM "COM1:2400, N, 8, 1"
TIMEOUT 300
Do      'warten, bis Werte ankommen
wert = Str$(READBYTE)
Loop While wert = -1
zeile = 1
spalte = 1
For i = 1 To 20
STRLENGTH 5
ZDat$ = "12345"
STRREAD (ZDat$)
Cells(zeile, spalte).Value = Left$(ZDat$, 4)
spalte = spalte + 1
STRLENGTH 5
ZDat$ = "12345"
STRREAD (ZDat$)
Cells(zeile, spalte).Value = Left$(ZDat$, 4)
spalte = spalte + 1
STRLENGTH 5
ZDat$ = "12345"
STRREAD (ZDat$)
Cells(zeile, spalte).Value = Left$(ZDat$, 4)
spalte = spalte + 1
STRLENGTH 10
ZDat$ = "1234567890"
STRREAD (ZDat$)
Cells(zeile, spalte).Value = Left$(ZDat$, 9)
spalte = 2
zeile = zeile + 1
Next
CLOSECOM
End Sub


Das Programm ist sicher nicht schön (mein erstes halt ; ) )... Hier noch Excel-Ausgaben, damit ihr vllt schnell seht, was ich falsch mache.
--------------------------------------------
| | 4? | :34?
0,08 | 24. | 1 | 26.0
--------------------------------------------
| | 71? | 4.98?
0,2 | 0. | |12:
--------------------------------------------
3? | | |
2 | .05. | 007? |
--------------------------------------------
Wie man sieht, passen ja die Werte, sie werden halt nur falsch eingetragen... *verzweifel*
Vielen Dank für eure Mühen im Voraus!

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mal wieder Excel/VB und RS232
30.05.2007 12:43:00
Matthias
Hallo Matthias,
das hat glaube ich wenig mit der RS232-Ausgabe zu tun, ich sehe auch nicht auf Anhieb, wo die Ausgabe falsch ist, aber ändere mal die fünftletzte Zeile

spalte = 2


auf


spalte = 1


war's das schon?
Gruß Matthias

Anzeige
AW: Mal wieder Excel/VB und RS232
30.05.2007 14:46:00
Matthias
ja, das war was kleineres.
hab das \n bei der Ausgabe weggenommen und alles in einen String geschrieben und dann durch Mid$ die Daten extrahiert. Funktioniert also =)
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige