www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega 16 / 32


Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus!

Habe einen Atmega 16 in meinem Bauteil. Jetzt reicht der Speicherplatz
nicht mehr aus. Kann ich den Controller einfach durch einen Atmega 32
ersetzen. Muss ich die Fuses verändern? Wird der Quellcode genauso noch
funktionieren? Ist das genau der selbe Controller nur mit mehr
Speicher.

Danke im Voraus, Gruss Sven

Autor: Jan M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Prinzip ja. ABER:
Es sind verschiedene Controller, zwar pinkompatibel, aber nicht bei den
inneren Werten: Die Register und Bits haben andere Namen und Positionen.
Einige gibt es neu, andere sind verschwunden, manche haben sich
verändert. Du musst also jedes einzelne Register durchgehen und
gegebenfalls ändern.

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Du musst also jedes einzelne Register durchgehen und
>gegebenfalls ändern.

Das kann man ziemlich einfach dadurch lösen, indem man sich die
Registerübersichten beider Controller ausdruckt (Bestandteil des
Datenblattes) und nebeneinander legt.
Wenn man in C programmiert, braucht man "nur" das Makefile anpassen,
den Quellcode compilieren lassen und sich gegebenenfalls um die
aufgetretenen Fehler kümmern.
Man sollte auch die entsprechenden Makros für Register und
Register-Flags benutzt haben. Das erspart noch mehr Probleme bei der
Fehlersuche.

Autor: Kri (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eigentlich reicht ein Durchgang mit dem Assembler und dem Simulator...
bei Register die er nicht kennt, kann man z.b. im AVR-Studio gleich mal
unter I/O-View nachschauen (richtiger AVR vorrausgesetzt).

1 16-bit Timer mehr
4 PWM-Channels mehr
1 UART mehr
mehr Interrupts (intern und extern)

d.h. bei den UART - Registern kommt noch eine Indexzahl hinzu z.b.
statt USART USART0 oder USART1.
Die Interrupt-Tabelle kannst direkt vom Datenblatt rausnehmen (ASM
vorausgesetzt)

Dürfte aber alles in 5min geändert sein.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
irgendwann hatte ich das Problem auch mal, ausser geänderten
Interrupt-Vektoren sind mir keine Unterschiede aufgefallen.
-zus. 16bit-Timer: nicht gefunden
-4 PWM-Channels mehr: nicht gefunden
-1 UART mehr: nicht gefunden

Ich behaupte mal, mit einer Mega32.inc statt Mega16.inc ist das
gegessen.

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich behaupte mal, mit einer Mega32.inc statt Mega16.inc ist das
>gegessen.

Wenn man Makros benutzt auf jeden Fall.
Wenn man natürlich Register mit irgendwelchen handgerechneten Werten
belegt, kann es zu Problemen führen (irgendwelche Bits in gewissen
Registern sind vertauscht).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.