Forum: Mikrocontroller und Digitale Elektronik kompatibilität


von Philipp Karbach (Gast)


Lesenswert?

inwiefern sind eigentlich die ganzen AVRs unter einander kompatibel? Ich
les mir grad den MMC code auf der website von ulrichradig durch und der
ist entweder für ATmega32 oder 128 ausgelegt, wird der dann auf meinem
ATmega8 gar nicht funktionieren oder nur langsamer sein?

von Jan (Gast)


Lesenswert?

Die Grundstruktur in allen AVRs ist annähernd gleich, die
Rechengeschwindigkeit auch.
Es kann also nur Probleme geben, wenn

- mehr I/O-Pins verwendet werden als vorhanden
- mehr Speicher verwendet wird als vorhanden
- "Sonderfunktionen" verwendet werden, die nur bei manchen AVrs
vorhanden sind, z.B. JTAG, 2x USART, ADC ...

Trotzdem muss das Programm je nach Controller angepasst werden, da die
Register teilweise andere Namen haben.

von Peter D. (peda)


Lesenswert?

Die AVR sind nicht untereinander kompatibel, wie es z.B. die 8051 sind.

Das Hauptproblem ist, daß die Interruptvektoren, die IO-Register und
die Bits in den IO-Registern frisch, frei und fröhlich durcheinander
gewürfelt sind, ohne jedes System dahinter.
Und bei den neueren AVRs wird der IO-Bereich kaum noch genutzt, die
meisten IO-Register sind in den SRAM-Bereich umgezogen (IN, OUT hagelt
Fehlermeldungen), d.h. auch der interne SRAM zieht um !

Sämtliche IO- und SRAM-Zugriffe müssen also an den jeweiligen AVR-Typ
angepaßt werden.

Das mit den Interruptvektoren kann man dadurch abmildern, daß man mit
.org die Vektoren absolut plaziert. Die häufig zu sehenden
RETI-Tabellen sind dagegen tödlich.


Peter

von Philipp Karbach (Gast)


Lesenswert?

aber wenn ich doch jetzt zum beispiel nur die ports nutze dann muss ich
doch nichts umschreiben oder? PortB wird es doch bei allen geben oder?

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.