Forum: Mikrocontroller und Digitale Elektronik RS232 Mega16 - Hyperterminal?


von Marco (Gast)


Angehängte Dateien:

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

von Marco (Gast)


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 ????

von Aleksej (Gast)


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

von Marco (Gast)


Lesenswert?

Eigentlich ist der MCU doch durch das makefile definiert.. aber ich
lasse mich gern eines Besseren belehren... welche Interrupts sind denn
zu definieren und wie?

Marco

von Gunter (Gast)


Lesenswert?

Hi Marco,

Du hast daran gedacht, daß ein neuer Mega16 mit
internen 1MHz läuft?

hth
Gunter

von mmerten (Gast)


Lesenswert?

fuse bits auch richtig auf externen takt umgestellt ?
Anlieferungszustand ist ja 1 MHz interner RC-Oszillator

von Aleksej (Gast)


Lesenswert?

Mit dem internen Oszillator ist ja auch eine Möglichkeit, gebe ich zu

von Marco (Gast)


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

von Gunter (Gast)


Lesenswert?

vor allem jetzt NICHT EXPERIMENTIEREN !!!!
Sonst kannst Du den Mega16 ggf. wegwerfen.

Gunter

von Marco (Gast)


Lesenswert?

Das weiß ich :-)... deswegen habe ich erst fragen wollen, befor nur noch
der Hammer bleibt, um mal im Mega16 nachzuschauen, wie ich die
"Schalterchen setze" :-)

von Gunter (Gast)


Lesenswert?

Hi,

>Das weiß ich :-)...
dann ist ja gut ;-)
Leider kenne ich Dein Programm nicht.
Vielleicht kann hier jemand anderes was dazu sagen.

Gunter

von Gunter (Gast)


Lesenswert?

Hi,
Übersetzte das Teil doch mal mit 1MHz "Quarztakt".
Dann müßte zumindest weniger Müll kommen.
Nur so als Nachweis, daß es daran liegt.

Gunter

von Marco (Gast)


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

von Gunter (Gast)


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

von Marco (Gast)


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

von Gunter (Gast)


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

von Marco (Gast)


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 :-)))

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.