Forum: Mikrocontroller und Digitale Elektronik Atmega128 mit FTDI232BM


von Niko (Gast)


Angehängte Dateien:

Lesenswert?

Hallo.

Ich habe folgendes Problem. Ich habe ein kleines Programm geschrieben,
welches die berühmten Worte "Hallo Welt" über die serielle
Schnittstelle raushaut. Nun ist es aber so, dass mein HyperTemrinal nur
Blödsinn empfängt.
Liegt das jetzt daran, dass ich bei der Programmierung Fehler gemacht
habe, oder ist doch meine Hardware dran schuld.

Desweiteren würde mich mal interessieren, warum der gcc-Compiler ein
hex-File generiert in dem die ersten 9 Zeilen fast idendtisch sind.

:100000000C9446000C9463000C9463000C94630001
:100010000C9463000C9463000C9463000C946300D4
:100020000C9463000C9463000C9463000C946300C4
:100030000C9463000C9463000C9463000C946300B4
:100040000C9463000C9463000C9463000C946300A4
:100050000C9463000C9463000C9463000C94630094
:100060000C9463000C9463000C9463000C94630084
:100070000C9463000C9463000C9463000C94630074
:100080000C9463000C9463000C94630011241FBE55

Wenn jemand eine Idee hat, dann wäre ich für die Unterstützung dankbar.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Könnte das die Interrupttabelle sein?

von Rolf Magnus (Gast)


Lesenswert?

> Desweiteren würde mich mal interessieren, warum der gcc-Compiler
> ein hex-File generiert in dem die ersten 9 Zeilen fast idendtisch
> sind.

Weil da die Interrupt-Vektor-Tabelle gespeichert ist. Alle interrupts,
die du nicht nutzt, werden auf einen default-Handler gestellt.

von Niko (Gast)


Lesenswert?

Das erklärt so einiges, aber nicht alles. Das ist das erste mal, dass
ich sowas bekomme. Wenn ich Programme für den ATMega8 compiliere, dann
erhalte ich die Interrupt Tabelle nicht.

Aber nun gut. Wenn dem so ist, dann kann ich damit leben.

Ich bedanke mich für Antworten.

Wenn jetzt noch ein Input für mein anderes Problem kommt, dann bin ich
rundum zufrieden.

von Helge Dietert (Gast)


Lesenswert?

Ja, der Aufbau und Länge ist unterschiedlich, so dass sie beim ATMega8
so kurz ist, dass man sie nicht sofort wahrnimmt, während der ATMega128
sehr viele Interrupts besitzt.

Zu dem Init schau dir mal das Datenblatt für den ATMega128 an, da
steht, wie man den richtig initialisiert; hat bei mir immer
funktioniert. Der Unterschied ist, dass es ein USART mit mehr Registern
ist, so dass URSEL so weit ich mich richtig erinnere wegfällt(war doch
das um das UARST Register Selection Bit, oder?); funktioniert denn das
Compilieren?

Im Datenblatt ist sogar ein C-Code-Bsp!

Helge

von Niko (Gast)


Lesenswert?

Jaujau. Ich habs gefunden. Funktioniert wunderbar.

Wer lesen kann ist halt klar im Vorteil. Ich hatte die ganze Zeit
USART1 am Wickel anstatt USART0.

Vielen Dank nochmal.

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.