• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Zajętość pamięci typy danych. Nieznajomość podstaw
#2
Są fajne książki do do C, darmowe, na Wikibook jest po polsku do C, kilka linków widziałem w PDF tu na forum. Zmienna int zajmuje bajty nie bity, 2 nie 4 (no chyba że w ESP8266 czy innym 32 bitowym procesorze), dlatego najlepiej stosować typy do liczb uint8_t/int8_t, tak samo 16,32,64 i wtedy nieważne czy kompilujesz na atmega328 czy ARM czy ESP zrobi zmienną dokładnie taką jak chcesz. Może być char i unsigned char do pinów, można zdefiniować piny #define led 13 i też to trochę ułatwia. Dróg do celu jest wiele. Wartości z pomiarów pewnie są 5 cyfrowe nie 5-liczbowe i np. z DS18B20 mieszczą się właśnie w int bez problemu z dokładnością do 2 miejsc "po przecinku" x100. Zajmuje więc mniej niż float i nie ma problemu z gubieniem dokładności w obliczeniach i szybkością obliczeń, problemów przy porównaniach.
A pomijając te drobne różnice odpowiedź na oba pytania brzmi TAK. To co widzisz w przykładach to dema, zrobione na szybko i prosto idące do celu, są liczby o przesadzonym zakresie, są delay, które nie powinny być użyte w rzeczywistym programie, są floaty, które zwykle nie są potrzebne i zamulają procesor. Używanie samego Arduino jest takim dużym uproszczeniem, bo choć C++ ułatwia tworzenie ogromnych aplikacji to nie zrobisz takiej w systemie z 32kb dysku twardego (flash) i z 2kb Ramu. Ale można ten sam kod co na UNO uruchomić często również na DUE i ESP, a wtedy nie ma to już takiego dużego znaczenia. Bawiąc się tylko z AVR i C wszystko trzeba ładnie optymalizować, nie używasz zmiennej do współrzędnych ekranu typu INT gdy ekran jest 128x64, ale klasy w Arduino są tak pisane, że zadziałają z tym ekranem i takim FHD, nie muszą być przepisywane na nowo bo ktoś sobie wziął ekran 400x320. Ale taka uniwersalność zabije możliwość użycia na małym procku bo ram się szybko kończy. Zawsze można użyć bardziej zoptymalizowanej biblioteki choć mniej uniwersalnej, można napisać swoją.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Zajętość pamięci typy danych. Nieznajomość podstaw - przez kaczakat - 11-02-2019, 03:36

Skocz do:


Przeglądający: 1 gości