• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czy do rejestru mikrokontrolera AVR mogę zapisać liczbę zmiennoprzecinkową ?

VPS Starter Arubacloud
0 głosów
220 wizyt
pytanie zadane 23 lutego 2021 w C i C++ przez tonn204 Mądrala (7,470 p.)
Mam np liczbę 1.6. Czy mogę ją zapisać w takiej postaci do rejestru jakiegoś 8-bitowca np. Atmega328P? Czy ta liczba będzie obcięta do 1 (chodzi mi o rejestr 16-bitowy jeżeli ma to jakieś znaczenie).

2 odpowiedzi

+1 głos
odpowiedź 23 lutego 2021 przez adrian17 Ekspert (349,380 p.)
edycja 24 lutego 2021 przez adrian17

Czy mogę ją zapisać w takiej postaci do rejestru jakiegoś 8-bitowca np. Atmega328P?

Do jednego rejestru, nie.

Ale normalnie możesz używać floatów w C.

float a = 1.5;

Przykład praktyczny:

https://godbolt.org/z/36PPvE


Jak widać, GCC implementuje ("symuluje") liczby zmiennoprzecinkowe dla AVRa przepychając je osobno bajtami po pamięci i używając wbudowanych funkcji do robienia każdej operacji, jak dodawanie.

0 głosów
odpowiedź 24 lutego 2021 przez mokrowski Mędrzec (156,260 p.)

Mam np liczbę 1.6. Czy mogę ją zapisać w takiej postaci do rejestru jakiegoś 8-bitowca np. Atmega328P?

Nie.

Czy ta liczba będzie obcięta do 1 (chodzi mi o rejestr 16-bitowy jeżeli ma to jakieś znaczenie).

Tak, będzie obcięta.

Na MCU Atmega (ATtiny także), nie opłaca się w 95% przypadków stosować arytmetyki zmiennoprzecinkowej. Zamiast tego, stosuje się zapis stałoprzecinkowy lub stosuje się inne wybiegi. Np. mnożenie przez liczbę PI, można uzyskać mnożąc przez 355 i dzieląc wynik przez 113.

Arytmetyka ze zmiennym przecinkiem, dostępna jest w niektórych rodzinach MCU ARM Cortex-M4 / M7... Na 8-bitowcach jej nie oczekuj.

 

Podobne pytania

+1 głos
1 odpowiedź 138 wizyt
0 głosów
1 odpowiedź 369 wizyt
0 głosów
1 odpowiedź 237 wizyt
pytanie zadane 24 października 2020 w C i C++ przez tonn204 Mądrala (7,470 p.)

93,005 zapytań

141,971 odpowiedzi

321,250 komentarzy

62,342 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...