www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ausgabe von Microprozessor in .txt Format?


Autor: Andreas Stock (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie kann ich einen Wert z.B.: Temperatur von einem Microprozessor in der
Sprache Basic in eine .txt Datei schreiben lassen?

mfg

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1. fopen
2. fputs
3. fclose

Autor: Andreas Stock (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht könntest du das etas genauer beschreiben?
...mit Beispiel

Autor: Marko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Datenausgabe über UART in den PC,
dort Terminalprogramm wie z.B. Hyperterminal vom Windoofs
und unter x.txt speichern

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
fopen, fputs, fclose  sind die C-Funktionen.

Bei Basic heissen die anders und meist von Basic-Dialekt
zu Basic-Dialekt anders bzw. mit kleinen Unterschieden.

Aber das Prinzip ist immer das gleiche:

   Datei oeffnen
   Werte schreiben
   Datei schliessen.

Was sagt denn Dein Basic-Handbuch zu dem Thema?

Autor: Andreas Stock (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Programmiersprache:
z.B.:
10 AN=0
20 X=ANALOG
30 Y=1/(X/50)*260
40 PRINT „Temperatur“
50 PRINT Y
55 OPEN „C:/test1.txt“ FOR OUTPUT AS 1
56 PRINT #1, Y
57 CLOSE 1

--> dies funktioniert aber noch nicht

Autor: Andreas Stock (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich besitze kein Basic Handuch

Autor: Hanes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst auf dem uC keine Datei ablegen, ausser du hast ein Dateisystem
für ein Speichermedium implementiert.

Was willst du genau machen?

Autor: hans dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was sagt der compiler/interpreter dazu (in welcher zeile hängt es
denn)?
Das / sollte dann schon ein \ sein

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welches Basic ist es denn?

Autor: Andreas Stock (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eben... der "\" funktioniert nicht. Anstelle kommt immer ein "Ö"

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke dass im Moment die Verwirrung bei den Leuten
die dir helfen wollen groesser ist als bei dir.

Also: Erzaehl doch mal etwas mehr.
Wie sieht deine Schaltung aus? Welchen µC benutzt
du? Wo haengt der dran? Wie wird er programmiert?
Wie denkst du, soll dieser µC auf Deinem PC eine
Datei erzeugen koennen? Welches Basic nimmst du?

Irgendwie passt da was nicht zusammen. µC haben
normalerweise keine Festplatte oder ein sonstiges
Datei-orientiertes Speichermedium.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Denk immer dran:
Wir wissen von Deinem Problem nur das was Du uns erzaehlst.
Alles was Du uns nicht erzaehlst muessen wir raten.

> Eben... der "\" funktioniert nicht. Anstelle kommt immer ein
"Ö"

Wie, was, eben?
Was ist denn nun Dein eigentliches Problem?

Sag jetzt nicht: Ich will eine Datei speichern.
Sag konkret: Ich will das und das machen und wenn ich
dieses und jenes tue, dann passiert das und das.

Autor: Andreas Stock (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein...
Ich will den Wert den der µP berechnet in ein Textdokument ablegen.
Dieses Textdokument ist natürlich auf der Festplatte des PCs.
Der µP soll also nur die Werte über ein serielles Kabel zum Pc senden
und es dort in eine Textdatei speichern.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK.
Also Du schreibst jetzt den Programteil auf der PC Seite.
Sehe ich das richtig?
Welche Sprache benutzt du dafuer?
Kannst Du die Werte vom µC dort schon empfangen und
sagen wir mal ganz einfach anzeigen? (Nicht ueber
ein Terminalprogram sondern ein Program von Dir).

Autor: Andreas Stock (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wir geben das Programm über das Terminalprogramm mit Basic ein. Die
analogen inputs lesen wir wieder über das Terminal aus. Nun wollen wir
diese Werte in einer Text Datei speichern.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da sind 2 Computer beteilgt:

* Der eigentliche µC auf dem das Messprogram laueft.
* Der PC auf dem das Terminalprogram laueft ueber das
  Du den µC in Basic programmierst und zu dem der µC
  die Ergebnisse zuruecksendest.

Was Du brauchst ist eine Programmiersprache mit der
Du auf Deinem PC Programme erstellen kannst und die
auf dem PC laufen.

Das ganze ist so wie wenn Du Deine Freundin anrufst:
Deine Freundin sieht aufs Thermometer und gibt dir
die Temperatur durchs Telefon durch. Aber es ist dann
Dein Job (und nicht der der Freundin) diesen Zahlenwert
auf Papier niederzuschreiben.

Du musst Dich also schlau machen, welche Moeglichkeiten
Du hast Deinen PC zu programmieren. Die Programmierung
des µC ist dabei zunaechst erstmal Nebensache. Du brauchst
einen Ersatz fuer das Terminalprogram, das mit dem µC
Verbindung aufnimmt, die Werte entgegen nimmt und das
erhaltene in eine Datei abspeichert.

Autor: Andreas Stock (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit dem Terminal funktioniert das also nicht.
Welches Programm könnte man benutzen?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Äh, das hat doch Karl Heinz gerade ziemlich deutlich beschrieben:

mit einem von Dir selbst auf dem PC zu schreibenden Programm für
den PC.
Das muss mit der seriellen Schnittstelle die Dinge treiben, die Du
bislang "von Hand" über das Terminalprogramm getrieben hast und die
Resultate in einer Datei abspeichern.

Beginnt es langsam klarer zu werden?

Autor: Andreas Stock (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es war ja die frage nach einen fertigen Basic programm welche schon von
jemanden programmiert worden ist.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sowas wirst Du nicht fertig kriegen.
Das Beste was Du kriegen kannst, ist ein Terminalprogram,
das ein Protokoll in eine Datei abspeichern kann.
(zb. Hyperterminal kann das, wenn ich mich nicht irre)

Wenn Dir das nicht reicht, dann musst Du schon selbst
ran und selbst was programmieren.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falls dir jemand so ein Programm schreiben wollte, dann braucht er auch
noch weitere Informationen:

- Betriebssystem des PC
- Gewünschte Oberfläche (von Kommandozeile über DOS-Box, sachlich
  einfach bis klicki-bunti-verspielt)
- Parameter der seriellen Übertragung
- vereinbarter Wertebereich und Codierung der eintreffenden Daten
  (oder kommen die schon als ASCII-Text an?)

Es gibt also noch viel mitzuteilen, ehe dir jemand sagen kann, ob er
dir helfen kann oder will.

...

Autor: Axel Rühl (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
nabend,
>zitat
Wir geben das Programm über das Terminalprogramm mit Basic ein.
/>zitat

Jawoll, sowas hatte ich auch mal: 8052 AH-BASIC.
Da hatte der 52er Kern einen BAsic Interpreter onboard. Man musste sich
mit der Leertaste beim UC anmelden und konnte dann Zeile für Zeile das
Programm in den uC laden. Das wurde dann auch Zeile für Zeile im uC
interpretiert und irgentwann ausgeführt, schön nacheinander. Hat aber
astrein funktioniert, wenn auch schnarchlahm!

So zum Prog: (ob ich das noch hinbekomme?)
wieder Zitat von obens
<Zitat
Programmiersprache:
z.B.:
10 AN=0
20 X=ANALOG
30 Y=1/(X/50)*260
40 PRINT „Temperatur“
50 PRINT Y
55 OPEN „C:/test1.txt“ FOR OUTPUT AS 1
56 PRINT #1, Y
57 CLOSE 1

--> dies funktioniert aber noch nicht
/<Zitat

Ich nehme mal an, das ist der Basic "Script" für deinen uC?
Wird eine C-Control von C*x*d so programmiert?

Na egal OPEN „C:/test1.txt“ FOR OUTPUT AS 1 muss natürlich "FOR
INPUT" heissen.
Nur wirst du dem uC nicht beibringen können, auf deinem PC übers
serielle Kabel eine Datei zu öffnen. Das geht nicht.

PRINT Y sollte aber schonmal aus der seriellen Schnittstelle deines uC
daten liefern. Mit welcher Baudrate und mit welchen Parametern weiss
ich nicht, da die Initialisierung nicht mit bei stand.

Wenn ihr das Prog mit dem Ternimal in den uC reinhackt, müssten im
RX-Fenster auf alle Fälle - dort wo sonst auch die Boot-Meldung kommt -
wenigstens einmal folgendes zu sehen sein:

Temperatur
7.542E-4 (bei 8bit vollanschlag)

durch die Blume gesprochen, ist das eine ziemlich Herausforderung,
solch eine (für den uC) komplexe Rechnung dem Basic-Interpreter zu
überlassen.
Na aber egal, nach so 1-2Sekunden sollte dieser damit ja fertig sein
und dir in etwa oben genannten Wert einmalig im Terminalfenster
anzeigen.
Sonst könntet Ihr noch einfügen:

5 START:
.
.
.
55 GOTO START
Die eher bescheidene Ausführungsgeschwindigkeit lässt etwaige WAITS
oder DELAY überflüssig erscheinen.

Lass mal Zeile 30 erstmal weg, mach eine Endlosschleife aus deinem
"Script" und berichte uns mal, WAS GENAU ihr da für eine Kiste habt,
die euch Daten liefern soll bzw. ob das ja vielleicht alles schon geht,
nur das Abscpeichern eben noch nicht.

Schönen Abend
AxelR.

Y=1/(X/50)*260

schon krass, oder?
Tabelle empfiehlt sich hier, würde ich meinen.

Autor: Andreas Stock (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Axel für deine ausführliche Beschreibung!

Das ist natürlich nur ein Ausschnitt von meinem Programm das ich
geschrieben habe.
Leider versteh ich deine Frage nicht ganz:
Zitat: "Wird eine C-Control von C*x*d so programmiert?"
Das Programm läuft ja das einzige was mir noch fehl ist, dass ich eben
die Werte extra abspeichern kann, um sie dan später zu bearbeiten.

Das Problem ist das ich wahrscheinlich ein eigenes Programm, das den
Hyperterminal ersetzt, benötige um die einzelnen Werte
z.B.:Temperaturen in eine .txt Datei zu schreiben.

Ich habe nun erfahren das der Compiler den der µP verwendet eine eigene
Basic sprache aufweist, und diese wahrscheinlich nicht den Befehl des
ablegens in eine auswärtige Datei kennt...

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, noch mal ganz langsam:

1. Du verwendest eine C-Control Unit.
Auf dieser läuft irgendein Programm,
welches Werte erfasst....( dieses Programm hast Du mit
dem Compiler den C. mitliefert programmiert....) Gut.

2. Jetzt möchtest Du, das diese Werte auf dem PC gespeichert werden.

3. Jetzt musst Du diese Werte mit dem Basic compiler auf der
seriellen Schnittstelle ausgeben. Das machst Du alles mit dem
Programm was auf der C-Control läuft.(print-befehl soweit ich mich
erinnere...)

4. Jetzt brauchst Du ein Windows programm,
welches dir die werte in einer form wieder aufzeichnet.
(vorausgesetzt du verwendest windows)
Zum beispiel gibt es bray-terminal fertig.

5. es kann dir keiner ein fertiges programm geben oder anraten,
da du ein protokoll selber festlegen musst,
in welcher form die werte über die serielle schnittstelle
ausgegeben werden.
z.B. kommt sowas in betracht (ausgabe von 4 temperatur sensoren....)
print "12.5°C;23.5°C;45.3°C;84,3°C;97,7kPa;12:06:34;"

Diese Werte kann man dann in eine Datei auf einem Windows Rechner
schreiben !!!! Dies wird aber nicht in der C-Control programmiert.

6. Wenn Du selber ein programm schreiben willst,
brauchst du ein entwicklungswerkzeug, die die
serielle schnittstelle und dann!! die dateiausgabe unterstützen.

Beispiel: Dev-C++ (kostenlos..)
          Delphi
          Visual Basic
          Visual C++
          Java
          usw....

Dann ein paar Bücher kaufen und sich damit beschäftigen.

Gruß Sven

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
[..Leider versteh ich deine Frage nicht ganz:
Zitat: "Wird eine C-Control von C*x*d so programmiert?"..]

ist es denn nun ein C-Control, oder nicht?!

[..Das Programm läuft ja ..]

Wo/Wie werden im Augenblick deine Messwerte angezeigt?

Autor: Andreas Stock (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Messwerte werden zur Zeit im Terminal und auf einem LCD Display
angezeigt.

Autor: Axel R. (axelr) Flattr this
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
[...]?

Autor: Marko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also Deine Aussagen sind in etwa so aufschlussreich wie
der bluescreen beim Windows.

allgemeinse Schutzverletzung in Modul jahfdjabfhjsdvbf

wenn du keine angaben über die von dir verwendete
hardware und software lieferst kann dir so
ziemlicih keiner helfen ... ist in etwa so
wie "mein pc läuft nicht, wer kann mir sagen
welchen Prozessor ich habe?"

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Andreas Stock:
es ist eine Frechheit mit einem Satz "Die Messwerte werden zur Zeit im
Terminal und auf einem LCD Display angezeigt."
Man macht sich die Mühe und schreibt ein paar Postings weiter oben
struktoriert etwas zusammen. Dann wäre es normal, auch Stellung dazu zu
nehmen. Wenn das also die Art ist um Hilfe zu bitten, bist Du meiner
Meinung nach auf dem Holzweg.

Gruß Sven

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich drücke nur F4 und dann ist alles fertig.

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich fing schon an zu zeichnen in der Hoffnung, dass so meine Aussagen
besser verstanden werden.
macht mir aber langsam keinen Spaß mehr...

Wäre für mich überhaupt kein Problem, schnell in Delphi eine Form mit
der seriellen Komponente, einen FileSaveDialog und einem Memofeld
zusammenzuklicken.

Aber so kann ich mit deiner Aussage
[.. Die Messwerte werden zur Zeit im Terminal angezeigt. ..]
nicht viel anfangen.

Ich hatte erwartet, einen Auszug der Ausgaben zu bekommen (wenigstens
als Screenshot), die Angabe der Baudrate und der verwendeten
Übertragungsparameter. Darum hatte ich ja weiter oben schon - durch die
Blume - gebeten.

Ich weiss noch nicht, wie ich mich jetzt im weiteren verhalte. Ich lese
erstmal nur mit, da ja meine Ausführungen zum Thema offensichtlich ihr
Ziel verfehlen.

Vielleicht gelingt es ja jemand anderen, GENAU den Nerv zu treffen, der
dafür zuständig ist, eine SINNVOLLE Kommunikation stattfinden zu
lassen.

bis dahin

AxelR.

http://www.mikrocontroller.net/forum/read-1-191804...

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Sven:

Ich glaube, du tust Andreas Stock Unrecht...

Frech wäre es, wenn er diese Antwort wissentlich gegeben hätte.

Aber ich habe den Eindruck, dass er selbst nicht weiß, welche Aufgaben
von welchem Teil der Hardware erledigt werden, dass verschiedene
Betriebssysteme unterschiedliches Herangehen bedingen und dass es ein
Protokoll zwischen PC und MC geben wird.

Ansonsten wäre er ja schon auf meine diesbezüglichen Fragen weiter oben
eingegangen.

Er hat halt ein "Zusatzgerät" für den PC, dass ihm irgendwelche
Messwerte anzeigt und möchte diese nun abspeichern, ohne sich näher mit
der Materie beschäftigen zu müssen.

Auf dieser Basis kann man ihm nicht helfen.

...

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Axel:

So geht's mir auch...
Ich hätt' ihm auch ein kleines Programm mit den von dir genannten
Elementen zusammengenagelt, allerdings in VB6. Aber ohne Info geht das
nicht. Inzwischen wird meine Lust auch immer weniger...

Gruß nach Potsdam von der Elbe...

...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.