Hallo, da ich zu wenig Speicherplatz bei dem ATmega48PA habe, bin ich nun zum ATmega168PA gewechselt. Beide haben zwar das gleiche Datenblatt, gibt es aber trotzdem Unterschiede, die ich beachten muss? Wo muss ich diese Umstellung im AVRStudio eingeben? Bisher habe ich unter Project -> Configuration Options -> Device geändert und im Reiter "Main" des AVR Dragon ebenfalls Device auf ATmega168P geändert. Habe ich noch was vergessen?
> Habe ich noch was vergessen?
Probier's einfach aus. So kann z.B. keiner wissen, ob Du für
EEProm-Adressen uint8_t bzw. char verwendet hast, das reicht beim 48,
aber nicht mehr beim 168. Wenn Du Berechnungen hast, in die die
EEProm-Größe mit eingeht, gehen die jetzt schief. Ob sowas vorkommen
kann, weißt nur Du.
Das Datenblatt unterscheidet an den kritischen Stellen die verschiedenen Typen. Wenn die Programmierung in C erfolgt, sollte der Compiler eigentlich alles Notwendige erledigen. Das Programm sollte danach zumindest noch funktionieren. Wenn die größeren Speicherbereiche bei RAM und EEPROM auch genutzt werden sollen, müssen eventuell Variablen von 8 Bit auf 16 Bit geändert werden. Bei Assemblerprogrammierung musst Du aber eventuell selbst aufpassen. Interrupt Vektoren sind ab 168PA länger (2 Words / 4 Bytes anstelle 1 Word / 2 Bytes) -> macht insgesamt 52 Bytes zusätzlich. Der Aufruf der Interrupt Routine braucht dadurch ebenfalls einen Takt länger. Zusätzlich zu beachten bei zeit- bzw. platzkritischen Anwendungen: Aufgrund des größeren Flash funktionieren einige Befehle wie z.B. RJMP und RCALL ab 88PA nicht über den gesamten Adressbereich und müssen bei Bedarf durch JMP bzw. CALL ersetzt werden. Das erhöht den Speicherbedarf pro Aufruf um 2 Bytes und verlängert die Ausführungszeit um einen Takt.
Ich programmiere in C. Den größeren Speicher im EEPROM brauche ich nicht, brauche ihn nur im Flash. Die Variablen, die ich ins EEPROM schreibe sind unsigned int und werden gesplittet in 2 Byte und dann jeweils ins EEPROM geschrieben. Berechnungen zur EEPROM-Größe habe ich nicht. Wenn die Programmlaufzeit an der ein oder anderen Stelle nen Takt länger läuft, kann ich damit leben.
schlaumeier schrieb: > Dafür hat Atmel die App-Note AVR095 veröffentlicht! Optimal, genau das habe ich gesucht! Danke
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.