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

[atmega8/16] 32-bitowa arytmetyka

radexp 23 Lut 2010 07:58 1880 8
REKLAMA
  • #1 7737225
    radexp
    Poziom 12  
    Cześć!

    Dopiero zaczynam bawić się z mikrokontrolerami i zamierzam kupić jakąś ATMEGĘ 8/16 i mam pytanie: z tego co wiem atmegi są 16-bitowe, a ja chciałbym przy użyciu tej atmegi operować na liczbach większych niż 65536 ;) Da się w jakiś prosty sposób ominąć to ograniczenie i liczyć na liczbach 32-bitowych (np. poprzez jakąś funkcję libc)?

    Pozdrawiam, radex.
  • REKLAMA
  • Pomocny post
    #2 7737252
    mj_2000
    Poziom 15  
    ATMegi są 8-bitowe. Możesz operować na większych liczbach - pisz program w C (oczywiście procek nadal operuje na wartościach 8-bitowych, ale dla Ciebie nie będzie to widoczne).
  • #3 7737261
    radexp
    Poziom 12  
    mj_2000 napisał:
    ATMegi są 8-bitowe. Możesz operować na większych liczbach - pisz program w C (oczywiście procek nadal operuje na wartościach 8-bitowych, ale dla Ciebie nie będzie to widoczne).


    Dzięki :) Myślałem, że będzie z tym znacznie więcej problemu ;)
  • REKLAMA
  • #5 7739737
    radexp
    Poziom 12  
    kozak_sc napisał:
    Owszem będzie jeśli zależy Ci na szybkości wykonywania programu. Operacje na 32 bitowych liczbach w AVR-ku są bardzo wolne ponieważ procek musi się nieźle napocić z przeniesieniami itd.


    Jak wolne? Ile może trwać np. mnożenie dwóch kilkucyfrowych liczb, albo obliczanie pierwiastka kwadratowego?
  • REKLAMA
  • #6 7740275
    _Robak_
    Poziom 33  
    Ściągnij sobie AVRstudio i sprawdź;] A tak w ogóle to pierwiastek to już floaty ;)
  • #7 7740355
    radexp
    Poziom 12  
    _Robak_ napisał:
    Ściągnij sobie AVRstudio i sprawdź;]


    hah :) póki co nie mam jeszcze atmegi, a testy w symulatorze chyba nie odzwierciedlają rzeczywistej szybkości.

    _Robak_ napisał:
    A tak w ogóle to pierwiastek to już floaty ;)


    tak, wiem. Floaty myślę, że też obsługuje ;)

    PS. Wygląda na to, że będę musiał odkurzyć windowsowego kompa ;)
  • REKLAMA
  • Pomocny post
    #8 7740645
    sieger
    Poziom 24  
    W symulatorze można ustawić taką prędkość zegara jaką zamierzasz zastosować i symulator wyliczy dokładnie ile czasu zajmie wykonanie jakiegoś kawałka kodu, a to już daje jakiś obraz sytuacji
  • Pomocny post
    #9 7740808
    tmf
    VIP Zasłużony dla elektroda
    Ustawiona predkosc zegara w symulatorze jest bez znaczenia, wazne jest ile taktow operacja zajmie, a to latwo sprawdzic, bo w AVR Studio jest stosowny licznik. Potem wiedzac ile czasu zajmuje jeden takt mozna wyliczyc czas. Operacje na liczbach 32-bitowych sa szybkie, na float to raczej tragedia.
REKLAMA