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!