RS232 Mega16 - Hyperterminal?

Gast #62335
Lesenswert?

Hallo Leute

Ich habe einen ATmega16 und möchte einfach nur strings auf dem
Hyperterminal per RS232 ausgeben. Beim ATmega8 hat es auf anhieb
geklappt. Die Initialisierung ist ja nicht die gleiche, aber ich
bekomme die beim Mega16 nicht hin... ich bekomme nur "Textgülle". Was
mache ich falsch? Schaut mal bitte in den Quellcode. Danke euch.

Marco
Angehängte Dateien:
Gast #62336
Lesenswert?

Ich hab gesehen, das da noch zwei kleine Schnitzer drin sind. ich lege
ab baud =0 fest ... muss 23 sein und initialisiere UBRL zwei mal....
die eine Zeile müsste auskommentiert sein outp (....,UBRRL); . ABer das
ist nicht das Problem... es funzt trotzdem nur Zeichenwirrwarr an den
Hyperterminal.... schei.... :-).

Was machen ich denn noch falsch ????
Gast #62337
Lesenswert?

Hast du die Interrupts von Mega16 richtig initialisiert? Mega16 hat
nähmlich eine andere Tabelle, die Einträge sind nicht 2 bytes groß, und
im sourcecode hab ich nirgendwo gesehen, wie du dein MCU definiert hast
Gast #62342
Lesenswert?

HUPS ... dann brauche ich Hilfe, wie ich die Fuses setze. Ich benutze
das Programm AT-Prog. Da habe ich vier Bytes zur Verfügung um die Fuses
zu setzen. Leider fehlt mir der Zusammenhang, was ich da blind auf
Anweisung gemacht habe um das JTAG Interface zu disablen und dem
Datasheet des ATmega16. Voreinstellung ist Fusbit High 99 und des mußte
auf A9 .Ich mußte folgendes eingeben: zuerst die Bytefolge 58 08 00 00
(Senden), dann stand da 58 08 08 99 . Nun mußte ich eingeben AC A8 00
D9 (Senden) und es erschien AC A8 A8 00. ???? Was habe ich da gemacht..
kan das einer nachvollziehen und wie setzte ich nun dies
"jungfräuliche" 1MHz-Geschichte um?

Marco
Gast #62347
Lesenswert?

Also ich habe jetzt den Wert für UBRRL auf 6 gesetzt (1MHz, 9600bps)
aber habe trotzdem einen 3,6864MHz Quarz dran... das ist hoffentlich
kein Problem... habe keinen 1MHz Quarz zur Hand. Und es kommt immer
noch nicht das richtige am Hyper an :-(.

Marco
Gast #62348
Lesenswert?

Hi,

Nö!

#define F_CPU 1000000       // Quarztakt

sollte die einzige Änderung sein, die notwendig ist.
Dein angeschlossener Quarz ist egal. Der hängt einfach
an zwei I/O-Pins (ohne zu schwingen).

hth
Gunter
Gast #62349
Lesenswert?

Nö... daran lag nicht... ach menno, das ist, als ob man nem kleinen
Jungen sein Spielzeugauto wegnimmt :-(.... watt denn nu? Man sagt ja
immer, ein Computer ist so blöd wie der, der ihn bedient... bin ich
sooo blöde  kopfschüttel
Gast #62350
Lesenswert?

Hi,

dann müssen die C-Spezialisten hier mal ran und sagen
ob die Änderung des "define" reichen müßte.

Oder Du schreibst das Teil in Pascal um, dann kann
ich Dir evtl. weiterhelfen ;-)

Gunter
Gast #62351
Lesenswert?

JOHHHHH, da kahm alles zusammen.. Ich hatte zwar den Takt verändert,
aber define 9600 stehen lassen, mit 2400 ist die fehlerquote super und
siehe da... der Text ist da... ich danke dir erstmal ganz dolle... aber
nun muß ich noch die Fuses ändern... mal schauen wer mir da helfen
kann. den programmierer von AT-Prog habe ich schon angetextet und
warte. SUUUUPER :-)))

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren