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

Różnice między ATmegami 48/88/168

bombardier89 15 Lis 2010 15:22 1451 5
REKLAMA
  • #1 8746690
    bombardier89
    Poziom 14  
    Witam,
    mam dwa pytania.

    1. Czym różnią się od siebie procesory ATmega88, ATmega48 i ATmega168? Datasheet mają wspólny.
    2. Czy posiadając jedynie wsad .hex można stosować te procesory zamiennie?
    Przykładowo, mam aktualnie ATmegę168, chcę wgrać program z ATmegi88.
  • REKLAMA
  • Pomocny post
    #2 8746884
    tmf
    VIP Zasłużony dla elektroda
    Ilością dostępnej pamięci FLASH - 8, 4 i 16kB. Hex z 88 powinien ruszyć na 168, o ile nie wykorzystujesz bootloadera itp. spraw.
  • REKLAMA
  • Pomocny post
    #3 8746924
    Andrzej__S
    Poziom 28  
    bombardier89 napisał:

    Datasheet mają wspólny.

    ...i jest w nim rozdział: Comparison Between ATmega48, ATmega88, and ATmega168.

    Dodatkowo proponuję zwrócić uwagę na listę instrukcji, bo niektóre są dostępne tylko w ATmega168 (np. JMP).

    bombardier89 napisał:

    Przykładowo, mam aktualnie ATmegę168, chcę wgrać program z ATmegi88.

    Biorąc pod uwagę, że wektory przerwań mają inne rozmiary, raczej wątpliwe, że to zadziała. Chyba, że program był napisany w assemblerze i zaczynał się od adresu 0x0000 (wektory przerwań zostały pominięte).
  • REKLAMA
  • #4 8746997
    bombardier89
    Poziom 14  
    Dzięki za szybkie odpowiedzi.
    Andrzej__S napisał:

    Biorąc pod uwagę, że wektory przerwań mają inne rozmiary, raczej wątpliwe, że to zadziała. Chyba, że program był napisany w assemblerze i zaczynał się od adresu 0x0000 (wektory przerwań zostały pominięte).

    Zamierzam na mikrokontroler wgrać to: http://www.linusakesson.net/scene/craft/index.php - pisane chyba w asemblerze. Mógłbyś sprawdzić, czy będzie możliwe wgranie na ATmegę168?
  • REKLAMA
  • Pomocny post
    #5 8747267
    Andrzej__S
    Poziom 28  
    Nie analizowałem dokładnie, ale sądząc po rozszerzeniach (*.S) to wygląda raczej na wstawki assemblerowe do kodu w C. Zauważyłem też, że kod korzysta z przerwań, więc nie będzie kompatybilny z ATmega168. Atmega88 do wektorów korzysta z instrukcji RJMP, natomiast ATmega168 - z instrukcji JMP. Użycie tego samego pliku *.hex - moim skromnym zdaniem - nie uda się. Można spróbować skompilować to dla ATmega168, ale nie potrafię Ci doradzić, jak to zrobić. Wymagałoby to prawdopodobnie sporo zmian w kodzie. Poza tym ktoś na podanej przez Ciebie stronie już napisał:
    Cytat:

    I tried compiling it for the atmega 168 and it did not work. (podane przypuszczalne powody i tak dalej)
  • #6 8748585
    bombardier89
    Poziom 14  
    Dzięki za zapoznanie z tematem, wątek zamykam.
REKLAMA