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?
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.