Wechsel von ATMega16 auf 128 Probleme?!?

Gast #113573
Lesenswert?
• ▲
▼
Halli hallo an Alle,

ich bin seit kurzem von einem Atmega16 auf einen Atmega 128
umgestiegen, aufgrund des größeren internen EEProms. Ich habe beim
ATmega16 hauptsächlich die I/O-Ports ganz normal genutzt. Jetzt wollte
ich mein Programm umschreiben, aber es scheint nicht zu funktionieren.
Kann es sein das man irgendetwas Besonderes beachten muss, wenn man die
I/O-Ports als Ausgänge benutzen will?...

Vielen Dank für Eure Infos...

Ciao Thomas
Gast #113575
Lesenswert?
• ▲
▼
Hi Christof,

ich bin mit Absicht nicht genauer geworden, denn wenn ich jetzt alles
erklären würde, könnte ich hier ne 50seitige Ausführung schreiben. Ich
programmiere in C. Und ich wollte nur wissen ob man da was beachten
muss. Ich meine so funktionieren die Ports schon alle. Wahrscheinlich
nur nicht immer richtig...???

Ahoi Thomas
Gast #113576
Lesenswert?
• ▲
▼
Hi Thomas,

schau mal im M128 Manual unter
"ATmega103 Compatibility Mode".
Der ist per Default EIN-geschaltet und bringt einige Besonderheiten
z.B.:
"Port G serves alternate functions only (not a general I/O port)"

hth
Gunter
Gast #113579
Lesenswert?
• ▲
▼
Hi Jürgen,

klingt interessant...was genau meinst Du damit? Was ist denn sts und ab
welchen Ports? Vielleicht könntest Du mir etwas schnell antworten...wäre
wichtig...falls es mein Problem lößt.

Danke Thomas
Gast #113580
Lesenswert?
• ▲
▼
Gegenüber dem mega16 liegen beim mega128 einige I/O-Register und Ports
nicht mehr im standard I/O Bereich 0x00-0x3F sondern im SRAM Bereich
0x60-0x100. Ebenso sind daher bei einigen Peripherie-Registern keine
direkten Bit-Manipulationen mehr möglich. Ältere C-Compiler hat da bei
der Code-Generierung ihre Probleme, ist aber bei den aktuellen
Versionen bei allen behoben. Wenn du in ASM kodierst sind natürlich die
Änderungen  "zu Fuß" erforderlich, oder du ersetzt die kritischen
Befehle durch entsprechende prozessorunabhängige Macros.
Gast #113581
Lesenswert?
• ▲
▼
Hi Jürgen,

vielen Dank für Deine schnelle Antwort...
ich benutze WinAVR...in der neusten Version. Ich hoffe da wird soweit
alles von selbst erledigt. Gestern habe ich auch alle Signale nochmal
mit dem Oszi genau nachgemessen und wenn ich mich nicht getäuscht
habe,sind diese identisch mit denen vom ATmega16...und trotzdem
funktioniert die Applikation nicht :-(. Den Mega 16 habe ich auf dem
STK500. Den Atmega128 auf eine eigene Platine gebaut.Gibt es vielleicht
da noch eine Fehlermöglichkeit, dass auf dem STK500 die Ports mit
externen Pull Ups oder so versehen sind....oder irgendsowas?
Versteh es selbst nicht, finde keinen richtigen Unterschied. Verwende
hauptsächlich erstmal die Ports A-D...

Danke Thomas

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.