Forum: Mikrocontroller und Digitale Elektronik Zeichendarstellung im Monitor


von Norbert Pohl (Gast)


Lesenswert?

Ich hab da mal ein seltsames Problem.
Wenn ich meinen Atmel Mega8 über rs232 an meinen Rechner mit WinXP
anschließe erhalte ich nur wirre Zeichen auf dem Monitor.
Die Baudrate und die weiteren Parameter stimmen mit den compilierten
Einstellungen überein.
Muß ich da noch irgendwo irgenwas einstellen?

Sicher kann mir hieer jemand einen Tipp geben.

von leo9 (Gast)


Lesenswert?

mit 80%-iger Wahrscheinlichkeit läuft der Mega mit internem Oszillator.
Kontrollier mal die Fusebits. Als ersten Test könntest du auch den
Quarz auslöten, wenn immer noch Zeichen kommen liegt obiger Fehler vor.
Eine andere Möglichkeit wäre die Baudrate auf 1MHz (intern) umzurechnen
und die Einstellungen vom Terminal verändern.

grüsse leo9

von Tobi (Gast)


Lesenswert?

dann sind nochmal ca 8% wahrschenlichkeit zu lange/ schlechte kabel
neben irgendwelchen 1a störquellen

von Josef (Gast)


Lesenswert?

Sieht deine Initialisierung so aus ?

// UART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// UART Receiver: On
// UART Transmitter: On
// UART Baud rate: 9600
UCR=0x98;
UBRR=0x19;
ACSR=0x80;


UDR = 'S';  //'S'  zum Terminalprogramm

SG Josef

von Frankl (Gast)


Lesenswert?

Sind es zufällige Zeichen oder immer die selben falschen ?

von Norbert Pohl (Gast)


Lesenswert?

Richtig, der Mega läuft mit internem Takt.
Der Takt ist auf 1 MHz eingestellt.
Ich habe im Source ( BascomAVR ) die Taktrate richtig angegeben
Das sieht dann so aus
$crystal = 1000000
$baud = 9600

sollte angeblich so funktionieren

es sind scheinbar immer die gleichen Zeichen.

von Alexander Höller (Gast)


Lesenswert?

immer die gleichen Zeichen, obwohl er eigentlich immer andere ZEichen
senden sollte?

Lad dir mal ein Terminalprogramm runter, wo du auch die empfangenen
Werte siehst, nicht nur das ASCII Zeichen dazu (z.B.
http://bray.velenje.cx/avr/terminal/ ). Und sag dann mal, welche Werte
emmpfangen werden ... und was der µC eigentlich senden sollte.

mfG
aleX

von Thorsten (Gast)


Lesenswert?

> Ich habe im Source ( BascomAVR ) die Taktrate richtig angegeben
> Das sieht dann so aus
> $crystal = 1000000
> $baud = 9600

> sollte angeblich so funktionieren

Du kannst in deinen Sourcen so viel einstellen wie du willst. Wenn die
Fuses falsch gesetzt sind, gehts nicht.

von Frankl (Gast)


Lesenswert?

Ich hoffe du hast an die Wandelung Dezimal+48 nach ASCII gedacht.

von Norbert pohl (Gast)


Lesenswert?

also wie das mit dem Monitorprogramm aussieht kommen bei Hex-Darstellung
haufenweise Nullen und ab und zu mal ein Zeichen.

Ich tippe die Baudrate stimmt nicht und Thorsten hat mal wieder recht,
die hab ich natürlich noch nicht angepasst.

von Josef (Gast)


Lesenswert?

Die Uart hat einen eigenen Timer.

SG Josef

von Norbert Pohl (Gast)


Lesenswert?

Ihr seid einfach Spitze !!!
Danke für die Tipps.
Ich habe das Problem gelöst.
Habe mir das Kapitel mit den Fusebits in der Mega8 Doku nochmal richtig
durchgelesen. ( sollte man eigentlich gleich machen )
Habe CK von no delay auf 4ms delay umgestellt und schon klappts.

mit 9600 Baud sauber und fehlerfrei in beide Richtungen.

Jetzt brauch ich wenigstens nicht mehr mit LCD zu arbeiten und kann
mein nächstes Projekt mit CAN-Bus in Angriff nehmen.

Da werde ich bestimmt wieder einige Probleme haben

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.