Zbyt długi plik hex?
Zbyt długi plik hex?
Witam.
Dzisiaj przeglądając elektrodę znalazłem program napisany w Bascomie do odczytu temperatury z termometru DS1820 (na dole jest do ściągnięcia).
Wkleiłem go do bascoma i po skompilowaniu wyszedł plik który zajmuje 5,3kb!!! A moja atmega ma tylko 8 kb pamięci. To dziwne ponieważ na EDW jest artykuł który opisuje budowę zegarka z tym termometrem a uC to 89C4051. A program zawiera oprócz odczytu temp. także obsługę zegarka. I to wszystko zmieściło się w 4kb pamięci a tym czasem mój krótki programik ledwo mieści się w Atmedze 8. Dlaczego się tak dzieje?
Dla zainteresowanych poniżej link do tego zegarka:
https://elportal.pl/pdf/k07/65_014.pdf
Dzisiaj przeglądając elektrodę znalazłem program napisany w Bascomie do odczytu temperatury z termometru DS1820 (na dole jest do ściągnięcia).
Wkleiłem go do bascoma i po skompilowaniu wyszedł plik który zajmuje 5,3kb!!! A moja atmega ma tylko 8 kb pamięci. To dziwne ponieważ na EDW jest artykuł który opisuje budowę zegarka z tym termometrem a uC to 89C4051. A program zawiera oprócz odczytu temp. także obsługę zegarka. I to wszystko zmieściło się w 4kb pamięci a tym czasem mój krótki programik ledwo mieści się w Atmedze 8. Dlaczego się tak dzieje?
Dla zainteresowanych poniżej link do tego zegarka:
https://elportal.pl/pdf/k07/65_014.pdf
- Załączniki
-
- DS1820.rar
- (2.85 KiB) Pobrany 355 razy
-
ZbeeGin
Plik HEX masz 5,3? Długość HEX nie przekłada się na długoścć programu w nim zawartego. Zawsze jest większa.
Ponadto nie porównój kodów pomiędzy MCS-51 a AVR bo to odmienna architektura.
W programie dzielisz przez 16. Ale dlaczego dzielisz to jako liczby zmiennoprzecinkowe? Przecież 16 jest liczbą stałoprzecinkową i w dodatku potęgą liczby 2.
Ponadto nie porównój kodów pomiędzy MCS-51 a AVR bo to odmienna architektura.
W programie dzielisz przez 16. Ale dlaczego dzielisz to jako liczby zmiennoprzecinkowe? Przecież 16 jest liczbą stałoprzecinkową i w dodatku potęgą liczby 2.
Ostatnio zmieniony 15 lip 2008, 21:54 przez ZbeeGin, łącznie zmieniany 1 raz.
ZbeeGin dzielę przez 16 ponieważ tak jest w programie który przepisałem z elektrody a tam wszyscy komentowali ten program że jest sprawny więc go tylko przepisałem.
snow 5kb na dysku. Podczas kompilacji wyskakuje mi okienko i pisze w nim FLASH USED: 24% Tu chodzi o to że będzie zajęte tylko 24% pamięci flash Atmegi8?
snow 5kb na dysku. Podczas kompilacji wyskakuje mi okienko i pisze w nim FLASH USED: 24% Tu chodzi o to że będzie zajęte tylko 24% pamięci flash Atmegi8?
Na dysku plik tego typu zajmuje zawsze nieco więcej niż wskazuje jego rzeczywista objętość. Co do drugiego pytania to tak, skompilowany program zajmuje 24% całej objętości pamięci FLASH procesora Atmega8.Kamil 1 pisze: snow 5kb na dysku. Podczas kompilacji wyskakuje mi okienko i pisze w nim FLASH USED: 24% Tu chodzi o to że będzie zajęte tylko 24% pamięci flash Atmegi8?
Dziękuję za odpowiedzi. Już myślałem że ledwo to zmieszczę do uC.
Ciągle gnębi mnie jeszcze jedno pytanie: Dlaczego program ten chodź jest krótki zajmuje tak dużo miejsca? Ostatnio napisałem program 5 razy dłuższy od tego i był bardziej rozbudowany a po skompilowaniu zajmował 33% pamięci flash mikrokontrolera. Od czego to zależy?
Ciągle gnębi mnie jeszcze jedno pytanie: Dlaczego program ten chodź jest krótki zajmuje tak dużo miejsca? Ostatnio napisałem program 5 razy dłuższy od tego i był bardziej rozbudowany a po skompilowaniu zajmował 33% pamięci flash mikrokontrolera. Od czego to zależy?
Nie zawsze dzieci elektrody mają rację. Szklankę wody też można przewieźć cysterną, tylko jakim kosztem? Tak samo używanie do przeliczenia temperatury z DS18B20 liczb typu single jest znacznym nadużyciem.dzielę przez 16 ponieważ tak jest w programie który przepisałem z elektrody a tam wszyscy komentowali ten program że jest sprawny
Kod z załacznika zajmuje 16% pamięci (to i tak za dużo jak na taki trywialny program).
- Załączniki
-
- termo.zip
- (559 Bajtów) Pobrany 273 razy
Dziękuje za odpowiedzi. Zaraz wprowadzę ten program (po dodaniu własnych bajerów) do pamięci Atmegi.
Pozdrawiam.
[ Dodano: 2008-08-27, 07:49 ]
Przepraszam że odkopałem temat ale mam problem. Podczas pomiarów temperatury układem DS1820 korzystałem z tego programu, który napisał kolega radzio. Ale na wyświetlaczu temp wynosi 3.5°C i utrzymuje się w przedziale 3.2°C - 3.8°C. Dlaczego tak się dzieje? Termometr rtęciowy pokazuje że w pokoju jest 27°C a DS1820 że tylko ok 3°C.
Pozdrawiam.
[ Dodano: 2008-08-27, 07:49 ]
Przepraszam że odkopałem temat ale mam problem. Podczas pomiarów temperatury układem DS1820 korzystałem z tego programu, który napisał kolega radzio. Ale na wyświetlaczu temp wynosi 3.5°C i utrzymuje się w przedziale 3.2°C - 3.8°C. Dlaczego tak się dzieje? Termometr rtęciowy pokazuje że w pokoju jest 27°C a DS1820 że tylko ok 3°C.