Witam,
Mam 5 bajtową tablicę i muszę ją zamienić na wartość dziesiętną w formie tablicy gdzie każdy element to jedna liczba.
I tu się zaczynają schody, przerobienie z uint8_t arr[5] na uint64 jest proste i bezbolesne. Ale zamiana uint64 na dziesiętną wartość w tablicy z pojedynczymi liczbami zajmuje ponad 7kb flash'a.... Docelowo chcę użyć m8 i już mam zajęte 4,6k więc...
Taki mam kod: (to, że liczby lądują w odwrotnej kolejności to nawet nie jest problem...)
Samo modulo i dzielenie uint64 kosztuje mnie 7k pamięci flash (czyli w moim przypadku program zajmie 11,8k
)...
Trochę już szukałem i nie znalazłem żadnego rozwiązania, ażeby to tyle nie zajmowało miejsca (i chodziło znośnie szybko).
Wiem, że unsigned long long na avr to jak postawienie atmegi na strzelnicy
, ale nie mam innego pomysłu jak zamienić tablicę arr na tablicę liczb decymalnych...
Mam 5 bajtową tablicę i muszę ją zamienić na wartość dziesiętną w formie tablicy gdzie każdy element to jedna liczba.
I tu się zaczynają schody, przerobienie z uint8_t arr[5] na uint64 jest proste i bezbolesne. Ale zamiana uint64 na dziesiętną wartość w tablicy z pojedynczymi liczbami zajmuje ponad 7kb flash'a.... Docelowo chcę użyć m8 i już mam zajęte 4,6k więc...
Taki mam kod: (to, że liczby lądują w odwrotnej kolejności to nawet nie jest problem...)
Kod: C / C++
Samo modulo i dzielenie uint64 kosztuje mnie 7k pamięci flash (czyli w moim przypadku program zajmie 11,8k
Trochę już szukałem i nie znalazłem żadnego rozwiązania, ażeby to tyle nie zajmowało miejsca (i chodziło znośnie szybko).
Wiem, że unsigned long long na avr to jak postawienie atmegi na strzelnicy
