Forum: Mikrocontroller und Digitale Elektronik c167 bildschirmausgabe


von Gena (Gast)


Angehängte Dateien:

Lesenswert?

Hi arbeite nicht solange mit uC bis jetzt nur mit 12F675.
Wollte lediglich nur eine Bildschirmausbabe(Hello World) mittels 
Hyperterminal und RS232 erreichen bzw eine komunikation. Meine 
Vorgenehnweise war:

1.Mit keil ein Hex-file erzeugt.
2.geflasht mit 16W tool. 57.600baud
3. Mit Hyperterminal versucht auszugeben, fehlgeschlagen.
   es wird zwar was ausgegebn (z.B. ei oder lauter dreiecke sowie eine 
endlosschleife) ist aber nicht das richtige.

den Quellcode hab ich im anhang mit beigefügt. der uC ist übrigens auf 
einem HD200 von phyton drauf.

Danke für jede hilfe

MfG
Gena

von David (Gast)


Lesenswert?

hab auch schon mit dem c167 gespielt. für ausgaben auf den pc hab ich 
jeweils flashit verwendet (naja sollte ja fisch wie vogel sein)...

hast du den grundstock deinen programmes mit DAvE gemacht? Wenn ja, hab 
da die Funktioin ASC_vSendData verwendet (habs leider nie mit printf 
probiert).

P.S. ich würde mal die einstellungen de seriellen schnittstelle 
überprüfen, änderst du was bei der initialisierung? (hab mal die 
bautrate falsch eingestellt, da kamen auch lustige werte an, die 
jenseits der realität lagen...)

von David (Gast)


Lesenswert?

p.s. weiss nicht ob printf das regelt, aber bist du sicher das das 
senderegister nicht schneller überschrieben wird als gesendet werden 
kann?

von Gena (Gast)


Lesenswert?

Nein Mit keil uvision3. und mit flashtool W16 geflashed.

Die Baudrate beim flashen ist 57600 und beim lesen mit hyperterminal 
liegt bei
9600. Sind die werte Etwa nicht ok??

von Peter D. (peda)


Lesenswert?

Gena wrote:
> Die Baudrate beim flashen ist 57600 und beim lesen mit hyperterminal
> liegt bei
> 9600. Sind die werte Etwa nicht ok??

Woher soll man das wissen?

Du schreibst:
1
S0BG  = 0x40;                        /* set baudrate to 9600 baud           */
Woher hast Du diese ominöse 0x40?

Ich benutze den 8051 und da lasse ich einfach die Baudrate den Compiler 
selber ausrechnen:
1
#define XTAL  11.0592e6
2
#define BAUD  19200
3
4
RCAP2W = (unsigned int) -(0.5 + XTAL / 32.0 / BAUD);

Geht bei Dir auch.

Du must nur aus Deinem Datenblatt die Formel für die Baudrate 
abschreiben und natürlich die Quarzfrequenz definieren, die auf Deinem 
Board bestückt ist.


Peter

von Martin (Gast)


Lesenswert?

Wie schon Peter gesagt hat. Lese erstmal im Datenblatt nach, wie sich 
der set baudrate Wert zusammensetzt.
Dann solltest du das Hyperterminal richtig einstellen -> richtige 
Baudrate und soweiter...
Diese Baudrate hat nichts mit der Baudrate beim Flashen zu tun!

Also probiere es nochmal.

von Gena (Gast)


Lesenswert?

Hi hat entlich alles geklappt. hab jetz allerdings ein neues Problem, 
ich muss über die RS232 schnittstelle ASCII_Werte empfangen und dann 
weiter ausgeben.

Wie mache ich das am besten?? gibt es was fertiges???

danke

von Thomas L. (tom)


Lesenswert?

am PC?

Verwende C# mit der SerialPort Klasse

von Gena (Gast)


Lesenswert?

ja am PC über den Hyperterminal ausgeben.

von Gena (Gast)


Lesenswert?

Hi sorry bin noch nicht so lange dabei. aber wie bind ich sollche 
klassen in mein pragramm ein, hab da ein gefunden 
http://msdn2.microsoft.com/de-de/library/system.io.ports.serialport.aspx.

sprich. wie gehe ich jetzt am besten vor?? am besten step by step oder 
gibt es eine howto??

danke

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.