Anzeige
Archiv - Navigation
872to876
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
872to876
872to876
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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!

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

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 =)
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige