logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Kompatybilność kodu z atmega32 na atmega128 i różnice w rejestrach UART

kmkm2 10 Lip 2012 13:20 1868 4
REKLAMA
  • #1 11090179
    kmkm2
    Poziom 21  
    Czy program napisany na atmega32 będzie działać na atmega128? Po zmianie w makefile program nie kompiluje się, ze względu na inne nazwy rejestrów od UART. Czy przesiadka z atmega32 na 128 może sprawić jakieś problemy? Czy istnieje wersja atmega128 z usb??
  • REKLAMA
  • REKLAMA
  • #3 11090223
    kmkm2
    Poziom 21  
    Czy istnieje jakiś avr kompatybilny programowo z atmega32 tylko z większą od 2 do 4 razy ilością SRAM i EEPROM? Czy najlepszą opcją jest atmega 64/128?
  • REKLAMA
  • #4 11090257
    LordBlick
    VIP Zasłużony dla elektroda
    kmkm2 napisał:
    Czy istnieje jakiś avr kompatybilny programowo z atmega32 tylko z większą od 2 do 4 razy ilością SRAM i EEPROM?
    Wszystkie ATmega są kompatybilne programowo - kilka literek w nazwach rejestrów zmienić to żaden problem. Nowsza wersja ATmega32 to ATmega324/644/1284, ale tez zawsze jakieś rejestry inaczej się nazywają. Jeśli nie chcesz pokazywać kodu, to musisz się wgryźć w noty katalogowe obu mikrokontrolerów, uwzględnić adresowanie pamięci większej niż 64kB (Rejestr RAMPZ) przy pobieraniu danych z tabel PGMSPACE itd.
  • #5 11090547
    piotrva
    VIP Zasłużony dla elektroda
    Dokładnie. Przeniesienie kodu z jednego modelu na inny ogranicza się (zwłaszcza w przypadku przesiadki na wyższy model) do pozmieniania nazw rejestrów i sprawdzenia czy jakieś bity nie mają innych nazw lub np. nie występują. Po prostu jak masz błędy to bierzesz pierwszy z brzegu, sprawdzasz w kodzie w jakim kontekście występuje, bierzesz DS obu procesorów i usuwasz błąd. Potem znów F7 i tak po kolei. Na prawdę nie widzę w czym problem...
REKLAMA