www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zahlen über rs232 an Hyperterminal


Autor: simon seidl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich möcht mit dem PIC16F876 einen Messwert über die serielle
Schnittstelle zum Computer übertragen.
In Hyperterminal kommen auch Signale an aber keine Zahlen sonder
irgentwelche komischen Zeichen die sich von Zahl zu Zahl
unterscheiden.
so zeigt er z.B für die Zahl 50 ein Ausrufezeichen
oder für die Zahl 16 zwei senkrecht Linien an.

Wie bekomm ich jetzt statt irgentwelche Zeichen die Zahlen auf den
Bildschirm ich gesendet habe??
Liegt es vielleicht an Hyperterminal??

mfG
s. seidl

Autor: Anton Wert (antonwert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie schickst du deine Daten? Schon im ASCII Format?

Autor: simon seidl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das weis ich nicht.
Wie oder wo kann ich das herausfinden?

Autor: Anton Wert (antonwert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja in deinem PIC Programm hast du doch das versenden Codiert. Kannst
ja mal den Abschnitt der das Versenden vornimmt hier posten, dann
wird's einfacher...

Autor: simon seidl (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Da ich nicht wirklich eine Programmiersprache behersche.
Schreibe ich meine Programme in Parsic. Das ist ein grafisches
Programmiertool das mit bereits vorgefertigten "Bausteinen" arbeitet
Das Programm erstellt dann daraus eine ASM-Datei (Quelltext) den hab
ich mit angehängt.
Vielecht hilft er dir weiter ich komm mit ihm nicht so ganz klar.

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann sollte doch im Handbuch drinstehen, was die vorgefertigten Module
machen?
Kleiner Tipp am Rande: Bei einem µC lohnt es sich schon, eine
Programmiersprache zu beherrschen und sich vor allem mit der Hardware
vertraut zu machen. Erleichtert die Sache ungemein.

Autor: Christoph Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
kannst du vielleicht das Programm, welches du geschrieben hast ins
Forum schreiben?
Wäre echt nett!
Danke mfg Christoph

Autor: simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
den ASM-Quelltext hab ich schon als Anhang in meiner letzten e-mail.
Oder meinst du direkt das PARSIC Programm?

simon

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BSF STATUS,RP0  ; Bank 1
  MOVLW 207
  MOVWF SPBRG  ; BAUDRATE GENERATOR
  MOVLW B'00000100'  ; 8-BIt,TRANSMIT DISABLED,ASYNCHRON,BRGH=1=HIGH
SPEED
  MOVWF TXSTA
  BSF PIE1,TXIE  ; enable INTERRUPT for transmit
  BSF INTCON,PEIE  ; PERIPHERIE INT ENABLE


--> die Einstellungen sind für 16Mhz und 1,202kbaud oder 4Mhz mit 0,3
kbaud

  MOVFW INDF  ; data
  MOVWF TXREG  ; Transmit Register

an der stelle wird gesendet... jetzt ist noch die Frage was da in INDF
drin sand... sind halt 8 Bit die du nachsehen musst... damit kannst du
in deine ASCI Tabelle gehen und weisst was für ein Zeichen kommen
müsste...

wenn statt zahlen nur schwachsinn kommt liegt das an der
Syncronisation... also RS232 falsch eingestellt!

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das problem ist ja eigntlich klar: du darfst nicht den reinen zahlenwert
rüberschicken, sondern den ASCII Wert dessen.

Autor: Hannes Albert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe auch eine Frage zum Hyperterminal,
ich habe ein Programm geschrieben, bei dem ich Daten vom µC über die 
serielle Schnittstelle an das Hyperterminal des Computers schicken kann. 
Nun möchte ich aber auch vom HyperTerminal (HT) des Comp an den µC Daten 
sende.
Meine Frage ist jetzt, ob es beim HT Einstellungen gibt, die das Senden 
von Daten über die serielle Schnittstelle an den µC erlauben.
Wenn man mit dem HT eine Verbindung über TCP/IP aufmacht geht das meines 
Wissens nach, dass man Daten im HT eingibt und versendet aber geht das 
auch wenn man eine Verbindung über die COM1 zum µC hat.
MEin Problem ist, ich hab nur eine serielle Schnittstelle am µC!.
Vielen Dank für eure Antworten.

lg
Hannes

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> MEin Problem ist, ich hab nur eine serielle Schnittstelle am µC!.

Das macht nichts.
Eine RS232 geht in beide Richtungen.
Alles was du im HT auf dem Keybord klimperst, schickt HT über
die serielle Schnittstelle raus. Es liegt dann am µC diese
Daten zu empfangen und weiter zu verarbeiten.

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

Bewertung
0 lesenswert
nicht lesenswert
Serielle Schnittstellen sind bidirektional. Wenn Du im Terminalprogramm 
eine Taste drückst, wird vom Terminalprogramm deren ASCII-Code über die 
serielle Schnittstelle übertragen.

Wohin?

An Deinen µC. Einfach so.

Den musst Du natürlich noch so programmieren, daß er Zeichen auf der 
seriellen Schnittstelle empfangen kann, und bei empfangenen Zeichen auch 
irgendwas anstellt, aber das hat nichts mit dem Terminalprogramm zu tun.

Daß das Terminalprogramm auf der Tastatur eingegebenen Text über die 
serielle Schnittstelle versendet, ist das Standardverhalten. Dazu muss 
man gar nichts spezielles einstellen.

Es kann allerdings sinnvoll sein, wenn Dein µC bzw. die serielle 
Verbindung zu ihm kein Hardwarehandshake unterstützt (also mehr als die 
Leitungen RxD, TxD und GND benutzt), das Hardwarehandshake im 
Terminalprogramm zu deaktivieren oder aber im seriellen Kabel auf der 
PC-Seite entsprechende Kurzschlussbrücken zwischen RTS/CTS und DTR/DSR 
anzubringen.

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles, was man beim Hyperterminal über die Tastatur eingibt, wird über 
die serielle Schnittstelle verschickt.
Dass man HT auch für die Kommunikation über TCP/IP benutzen kann, ist 
mir neu.
In der Codesammlung oder unter "PC-Programmierung" findet man sonst 
einen Link zu einem besseren Terminal-Programm.

>MEin Problem ist, ich hab nur eine serielle Schnittstelle am µC!.

Wieso ist das ein Problem?
Man kann auch (irgendwo im Menu zufinden) ganze Dateien verschicken...

Autor: Hannes Albert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab noch eine Frage und zwar warum kann ich keinen Text in das 
Hyperterminal eingeben, der auch im HT zu sehen ist. Wenn ich eine neue 
Verbindung aufmache, und über die Tastatur etwas eingeben, dann kommt 
auf dem HT nichts an.
Kann man das einstellen oder ist das Standardmäßig so.
Vielen Dank.
lg
Hannes

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da wird man irgendwo ein lokales Echo einstellen können...

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weil HT alle Tastatureingaben einfach nur an das Gerät schickt,
dass an die Leitung angeschlossen ist.
Normalerweise sendet das Gerät dann diese Zeichen gleich wieder
zurück. Damit kann man wunderbar einfach überprüfen, ob es ein
Problem in der Kommunikation gibt: Kommt das getippte wieder
zurück, wird es vom Terminal angezeigt und man weiss dass die
Kommunikation klappt. Kommt nichts oder nur verstümmelt, dann
gibt es ein Problem in der Kommunikation.

Bei allen Terminals, und somit auch bei HT kann man aber ein
sog. lokales Echo aktivieren, bei dem das Terminal eingetippte
Zeichen selbst anzeigt.

Autor: Hannes Weninger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hätte eine Frage bzg. Zahlen an das Hyperterminal schicken.
Ich hab in meinem Programm ein Array von 500 Zahlen in integer (int 
arr[500];)
Die Werte repräsentatieren einen Zahlenverlauf eines Messwertes. Diese 
Zahlen bräuchte ich in einer *.csv- Datei.
Hat jemand eine Idee, wie ich diese Zaheln im Array zum Hyperterminal 
bekomme bzw. ich brauche diese Zahlen gar nicht dargestellt am HT, 
sondern möchte nur eine *.csv- Datei.
Am Hyperterminal kann man ja auf "Übertragen -> Datei empfangen" gehen.
Weiß vielleicht jemand, ob das bei meinem Problem hilft, sprich, ob ich 
vielleicht irgendein Zeichen an das HT schicken muss, damit dieses weiß, 
dass jetzt die Daten kommen, und diese werden dann vom HT in eine 
Textdatei gespeichert.

Bin für jede Anregung sehr dankbar und bedanke mich jetzt schon sehr 
herzlich für Eure Antworten.

lg
Hannes

Autor: unsichtbarer WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du wirst diese Zahlen in ASCII-Zeichen umwandeln müssen, um daraus eine 
Textdatei machen zu können.

Autor: Hannes Weninger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das wäre ja kein Problem, aber ich muss diese Zahlen über TCPIP an das 
HT schicken, dort aber nicht anzeigen, sondern das HT soll eine 
Textdatei machen.
Ich weiß, dass man in C mit fopen() eine Datei aufmachen kann und da was 
reinspeichern kann aber ich hab eben nur einen Zugriff auf das HT vom µC 
aus.
Vielen Dank.

lg
Hannes

Autor: unsichtbarer WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du denn schon eine entsprechende Schnittstelle an deinem 
Mikrocontroller?

Autor: Hannes Weninger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JA hab ich, das funktioniert alles, Es geht nur darum, mit den integer- 
Zahlen am Remote- Computer in eine Textdatei zu packen, möglichst mit 
dem Hyperterminal (mit "Übertragung -> Datei empfangen zum Beispiel);

lg
Hannes

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du schickst was auch immer du willst in Textform an Hyperterminal.
Hyperterminal speichert dann für dich diesen Text in eine Datei.

Wenn du also willst, dass in deiner Datei
200;100
steht, dann schickst du genau diesen String zu Hyperterminal.

Für Zahlen musst du daher zunächst auf dem µC alles in eine
Textform bringen (itoa() oder sprintf()). Dann baust du
entweder eine komplette Textzeile am µC zusammen und schickst
die in einem Rutsch an HT oder du schickst die einzelnen
Texte einzeln. Macht keinen Unterschied. HT speichert alles
so wie es über die serielle Schnittstelle kommt in einer
Datei.

Autor: Hannes Weninger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank Karl heinz,
ich werds probieren.
Mir ist zwar jetzt noch nicht klar, wie ich da vorgehe, speichert das HT 
automatisch oder muss ich da zuers "Übertragung -> Datei empfangen" 
aufmachen und wo speichert das HT die Datei hin.
Vielleicht kannst du mir noch Tipps geben.
Vielen Dank auf jeden Fall.

lg
Hannes

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du willst gar nicht 'Datei empfangen'.
Was du willst ist 'Text aufzeichnen'.
Und wenn du den Menüpunkt auswählst, fragt dich HT
in welcher Datei es den Text speichern soll.

Alles was nach Anwahl dieses Menüpunkts über die
Schnittstelle reinkommt, wird in der angegebenen Datei
genau so mitgeschrieben, wie es empfangen wurde. Kannst
du ganz leicht mit zb. Notepad kontrollieren. Nach erfolgter
Übertragung machst du einfach mal die Datei auf und siehst
was der µC über die Schnittstelle gesendet hat.


Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und bevor du frägst :-)

Ja, du kannst das Text mitschreiben auch wieder ausschalten.
Sobald 'Text aufzeichnen' aktiv ist, gibt es beim selben
Menüpunkt ein paar Untermenüpunkte. Einer davon ist 'Beenden'.

Autor: Hannes Weninger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank,
ich bin gerade dabei, es zu machen.
Ich werde euch berichten.

lg
Hannes

Autor: Hannes Weninger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal,

eine Frage hätte ich noch: Wenn ich beim Hyperterminal auf "Datei 
empfangen" gehe, wird dann was vom HT an die COM (1,2, je nach 
Einstellung) gesendet, so quasi das das HT jetzt bereit ist, eine Datei 
zu empfangen bzw. wo liegt der Unterschied zwischen "Datei empfangen" 
und "Text aufzeichnen".
Vielen Dank für Eure Antworten.

lg
Hannes

Autor: Hannes Weninger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Karl heinz,

wenn ich beim HT auf Datei empfangen gehe, wird dann an den Remote-µC 
etwas geschickt, damit dieser weiß, dass er jetzt starten muss, oder 
wartet das HT bei dieser Einstellung auch nur, bis etwas kommt?

Vielen Dank.

lg
Hannes

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

Bewertung
0 lesenswert
nicht lesenswert
Hyperterminal verwendet wie jedes andere Terminalprogramm auch für die 
Übertragung von Dateien eines der Protokolle X-Modem, Y-Modem, Z-Modem 
oder Kermit.
Der Empfang von Dateien mit den letzten beiden Protokollen wird 
automatisch gestartet, bei den anderen Protokollen muss der Empfang 
manuell gestartet werden.

Dafür ist die Funktion "Datei empfangen" gedacht.

Da hier aber keines der genannten Protokolle implementiert wurde, ist 
diese Funktion hier völlig ungeeignet.

Also: Text aufzeichnen.

Was ich an der Diskussion beeindruckend finde, ist, daß Leute hier nach 
Dingen fragen, die sie mit etwa zwei Minuten Zeitaufwand auch selbst 
herausfinden könnten ...

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du auf 'Datei empfangen' gehst dann wird da ein
Protokoll dazwischen geschaltet. 'Kermit' ist zb so ein
Protokoll. Ein Protokoll ist ein Satz von Regeln nach
denen die Überttragung abläuft. Das kann zb beinhalten
dass der Empfänger bescheid gibt, dass er bereit zum Empfang
ist. Das beinhaltet normalerweise auch Dinge wie Prüfsummen
und Regeln wie diese Prüfsummen ausgewertet werden und
was im Fehlerfall zu passieren hat. Das kann auch Regeln für
die Datenkompression enthalten, etc.

Diese Übertragunsprotokolle stammen noch aus Zeiten, als die
meisten Übertragung, zumindest für Normalsterbliche,
analog über Telephon abgewickelt wurden und daher fehleranfällig
waren.

Autor: Hannes Weninger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

vielen Dank für Eure Antworten.
Eine Frage hätte ich noch: Welches Protokoll soll ich wählen, damit 
etwas zu meinem µC geschickt wird und dieser dann startet etwas zu 
senden und was schickt das HT bzw. das Protokoll (was muss ich im 
Programm des µC abfragen?
if (empfangen)
   start_senden = 1;

Vielen herzlichen Dank besonders an Karl heinz und Rufus

lg
Hannes

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im einfachsten Fall:
Denk dir was aus.

Du stellst HT auf Text ampfangen scharf und drückst auf der
Tastatur zb ein 'S'. Das 'S' geht zum µC wird ausgewertet und
als Antwort schickt dir der µC die Daten in Textform, die von
HT getreulich in die Datei geschrieben werden.

Ganz ehrlich: Ich glaube nicht, dass du ein Kermit Protokoll
oder ein ZModem Protokoll hinkriegst. Also verschwende nicht
deine Zeit damit.

Autor: Hannes Weninger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

einmal möchte ich noch stören.
Mein Problem ist jetzt, dass ich am Hyperterminal ein Menü stehen habe 
und wenn ich dann in einen Unterpunkt gehe, um mir die Daten vom µC in 
eine Textdatei schicken zu lassen, dann geht das, aber es wird auch auf 
das HT geschrieben und haut mir mein ganzes Menü zusammen bzw. es wird 
darüber geschrieben.
Meine Frrage wäre jetzt, ob es möglich ist, die Daten, die vom µC kommen 
nur in die Textdatei zu lesen und nicht auch auf den Monitor.

Vielen Dank!!!!!

lg
Hannes

Autor: unsichtbarer WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ganz ehrlich: Ich glaube nicht, dass du ein Kermit Protokoll
>oder ein ZModem Protokoll hinkriegst. Also verschwende nicht
>deine Zeit damit.

Zu Kermit oder einem der anderen Modem-Protokolle hat Atmel sogar eine 
Application Note herausgebracht....

.
.
.

such...

.
.
.

http://www.atmel.com/dyn/resources/prod_documents/...

Zumindest scheint es dabei um den Empfang zu gehen...

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Meine Frrage wäre jetzt, ob es möglich ist, die Daten, die vom µC kommen
> nur in die Textdatei zu lesen und nicht auch auf den Monitor.

Ursprünglich ist dieses Feature ja gar nicht dafür gedacht, Daten-
übertragung im Sinne von Dateiübertragung zu machen.
Es ging vielmehr immer darum die Arbeitssitzung zu protokollieren.

Wenn du HT dazu benutzt um eine Steuerung deines µC zu machen,
mit Menüs und so, dann stellt sich die Frage, ob dies überhaupt
ein vernünftiges Werkzeug dazu ist. Im Normalfall würde man
für sowas ein eigenes Programm auf PC-Seite schreiben. Das
hätte auch den Vorteil, dass man die komplette Menüsteuerung
und Benutzerinterkation vom µC wegkriegt und komplett auf den
PC verlagert, wo man dann das GUI mitbenutzen kann.
Vom PC gehen dann nur noch Kommandos zum µC, was zu tun ist.

Autor: Hannes Weninger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja das ist mir klar, aber es ist so vorgegeben und es kann dann jeder 
benutzen, ohne ein Programm am Computer lokal zu installieren.
Diese Vorteile überwiegen gegenüber den anderen!!

Vielen Dank für die Anregungen und die Hilfe

lg
Hannes

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.