Forum: Mikrocontroller und Digitale Elektronik Excel-kompatible Daten


von Thomas Strauß (Gast)


Lesenswert?

Hallo Leute,

ich möchte Daten, die von einem Mikrocontroller mit 10bit AD-Wandler
gesammelt worden sind, Excel-kompatibel über die serielle Schnittstelle
senden. Die Daten gehen über ein (von mir gelötetes) Mikrophon-Kabel
und einen 9poligen Stecker an die COM1-Buchse (Maus-Buchse)an den PC.
Das ist kein Problem (läuft ganz ohne Protokoll);
die Daten sollen jetzt aber so formatiert werden, daß sie als txt-Datei
von Excel4.0,Excel für Windows95 (Version7.0) wie auch auf Excel2000
als Tabelle geladen und dann auch als Diagramm angezeigt werden
können.

Bei der Excel-Version7.0 für Windows95 habe ich mit dem DOS7.0-Editor
eine Test-Datei erzeugt, indem ich eingegeben habe:

1       3
2       27
3       50
4       1023

und dabei die Tastenkombination Alt und 9 anstelle des Tabulators
gedrückt.

Anschließend habe ich die kleine Datei mit dem Debugger 'gedampt'
debug Test.txt
-d

und bekomme dann folgenden Speicherinhalt:

31 09 33 0d 0a 32 09 32 37 0d 0a 33 09 35 30 0d 0a 34 09 31 30 32 33

so in etwa (vielleicht habe ich die Reihenfolge von 0d und 0a
vertauscht).

Dabei ist 31 z.B. die ASCII-codierte 1 (hier Proben-Nummer), 09 das
Steuerzeichen für Tabulator, 33 wieder die ASCII-codierte 3
(Proben-Wert) und 0d 0a sind die Steuercodes für Zeile-tiefer und
Wagenrücklauf.

Diese Datei konnte ich mit Excel für Windows95 (Version7.0)als
txt-Datei laden, wobei die Datenreihen in Spalten (wie im
Original)vorhanden sind. Daraus konnte ich dann ein Diagramm
machen(Punktediagramm oder Liniendiagramm oder beliebig).

Dieselbe mit DOS für Windows98 erzeugte Datei liegt im Speicher nicht
mit 09 als Trennzeichen vor, sondern mit
20h(siebenmal)=Leerzeichen(siebenmal); diese Datei konnte ich mit
Excel2000 mit der zweiten Option beim Laden der txt-Datei so laden, daß
auch daraus ein Diagramm gemacht werden konnte.

Meine Frage an Euch ist, ob Excel2000 auch mit dem Trennzeichen-Code
09 anstelle von 20h(Code für Leerzeichen)klar kommt?

von Uwe Naumann (Gast)


Lesenswert?

Mach doch eine CSV-Datei mit ; als Feldtrenner anstelle Tabs/Spaces,
damit dürfte nicht nur Excel, sondern auch jede andere
Tabellenkalkulation klarkommen.

von Frank Simon (Gast)


Lesenswert?

Hallo,
es geht leichter, indem Du ein VBA-Makro von Excel aus startest, die
ser. Schnittstelle abfragst und direkt in das Excel-Blatt schreibst.
Dann kannst Du beim Speichern das Format wählen und musst Dir die Hände
nicht selber schmutzig machen. Falls diese Möglichkeit für Dich in
Frage kommt, schau doch bei www.ioproz.de vorbei, dort ist diese
Möglichkeit in einem anderen Zusammenhang beschrieben. Dort gibt es
auch die iotrix.dll, die den Zugriff auf den Comport auch von VBA aus
ermöglicht.
Frohes Schaffen
Frank
PS: Ach ja, mit dem Schreiben von csv hatte ich bei Excel immer
Probleme. Excel reagiert z.B. beim Klicken auf Dateien registrierter
Dateitypen anders als beim Laden derselben Datei vom Programm aus.
Manchmal will es Kommas, manchmal Semikola. Warum bloß?

von Uwe Naumann (Gast)


Lesenswert?

Tja, Excel ist schon manchmal etwas seltsam.

Allerdings ist Excel nicht die einzig existierende Tabellenkalkulation.
Mit dem CSV-Format hält man sich alle Optionen der Weiterverarbeitung
offen. Auch Datenbanksysteme kommen meistens recht schmerzfrei mit CSV
klar. Andere Tabellenkalkulationen sowieso. Und ich meine auch systeme,
die nicht mal unter Windows laufen.

Gruß Uwe

von Uwe (Gast)


Lesenswert?

Hi!
Bitte kein CSV, da hast du nur Ärger mit dem Komma(muss dann Punkt
sein)

Einfach als TXT speichern und den AVR Semikolon als Spaltentrenner,
Komma als normales Komma und Zeilenumbruch als $CR $LF.

Kann aus VB/VBA/... direkt gelesen werden, und ist beim Speichern als
.txt, sauber zu öffnen
zB.:

0,1;0,2;0,3;CRLF0,11;0,22;0,33;CRLF

wird als.txt zu

0,1;0,2;0,3;
0,11;0,22;0,33;

und kann im Excel sauber in Spalten importiert werden.
Wenn als .txt zu unübersichtlich, mache vor jeden Wert ein " "($20)

MFG Uwe

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.