-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!.POSTED.d103-176.icpnet.p
l!not-for-mail
From: KLoSS <n...@a...com.pl>
Newsgroups: pl.misc.elektronika
Subject: Re: Programowanie MCU - największa liczba
Date: Sun, 26 Feb 2023 10:50:44 +0100
Organization: http://www.wit.edu.pl
Message-ID: <ttfa1l$1su87$1@portraits.wsisiz.edu.pl>
References: <f...@g...com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 26 Feb 2023 09:50:45 -0000 (UTC)
Injection-Info: portraits.wsisiz.edu.pl;
posting-host="d103-176.icpnet.pl:77.65.103.176";
logging-data="1997063"; mail-complaints-to="a...@w...edu.pl"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.8.0
Content-Language: pl
In-Reply-To: <f...@g...com>
X-Antivirus: Avast (VPS 230226-0, 26.2.2023), Outbound message
X-Antivirus-Status: Clean
Xref: news-archive.icm.edu.pl pl.misc.elektronika:778610
[ ukryj nagłówki ]W dniu 26.02.2023 o 01:35, Stachu Chebel pisze:
> Używam Kinetis Design Studio. MCU: Arm Cortex-M4. Dokładnie jest to
> MK22FN512VLH12. Definiuję zmienną globalną : double a; .
> W przerwaniu zmienna jest inkrementowana: a=a+Byle_Co;
> Program działa poprawnie, ale do pewnego momentu czasowego.
> W pewnym momencie idzie "w maliny". Sekwencja:
>
> a=a+Byle_Co;
> if(a>Max)a=0;
>
> rozwiązuje problem. Ile maksymalnie mogę ustawić Max? Za cholerę nie mogę
> się doszukać maksymalnej wartości zmiennej typu "double" dla mojego MCU.
Eksperymentalnie ustawiłem Max=1e6. Program nie idzie w maliny. Jakie może być
największe Max?
>
1. Double jest z definicji zmiennoprzecinkowe z określoną dokładnością
mantysy a dokładna definicja jest zależna m.im. od języka i kompilatora
i może być różna
Np .w c++ jest zdefiniowana tak:
https://en.cppreference.com/w/cpp/language/types
czyli zgodnie z "IEEE-754 binary64 format" co daje jako max jakieś
1.79769e+308
Nie sądzę aby to było problemem. Prędzej ilość miejsc znaczących mantysy
bo jeśli Byle_Co jest stałe to po określonej ilości iteracji 'a'
przestanie nam się zwiększać.
I jeszcze wielokrotne inkrementowanie liczb zmiennoprzecinkowych nie
jest dobrym pomysłem bo błąd zaokrągleń będzie nam narastał i przy
odpowiednio dużych iteracjach błąd może być większy niż Byle_Co.
I na koniec konstrukcja
> a=a+Byle_Co;
> if(a>Max)a=0;
jest zupełnie bez sensu. Bo skoro z definicji 'a' nie może być większe
niż Max to cały ten if nie zadziała nigdy prawidłowo.
Proponuję najpierw poczytać podstawy matematyki binarnej i jej ograniczenia.
Nie znam problemu ale zamiast double w przypadku inkrementacji zazwyczaj
lepiej użyć zmiennej stałoprzecinkowej.
--
KLoSS
Następne wpisy z tego wątku
- 26.02.23 11:19 Marek
- 26.02.23 11:22 Marek
- 26.02.23 14:15 Grzegorz Niemirowski
- 26.02.23 14:58 Marek
- 26.02.23 18:04 KLoSS
- 26.02.23 19:06 Marek
- 26.02.23 19:21 KLoSS
- 26.02.23 22:01 Marek
- 27.02.23 08:51 Dawid Rutkowski
- 27.02.23 09:55 Marek
- 27.02.23 10:28 Dawid Rutkowski
- 27.02.23 12:48 Adam Górski
- 27.02.23 16:18 J.F
- 27.02.23 16:23 J.F
- 27.02.23 17:48 Adam Górski
Najnowsze wątki z tej grupy
- "Teleportacja" polskich statków na pd. Bałtyku - rosyjska zabawa w zakłócanie GPS, Galileo, Beidou i GLONASS
- W trakcie porwania prez. Maduro wojsko USONA użyło tajnej broni masowego rażenia: Discombobulator
- antena gsm - kabel - antena gsm
- PID - jeszcze raz
- Zlacze w mikrofonie z lat 80-tych
- Żywica żółknie od UV i wody :(
- Zawory termostatyczne
- Schemat automatyki
- Teoretyczne zagadnienie - ogrzewanie budynku
- Zagadka radiowa
- Prostownik
- Nowy akumulator Donut Lab
- Pilot do zamka/bramy
- Jaka myjka ultradźwiękowa?
- Retro organizer ale współcześnie
Najnowsze wątki
- 2026-01-27 Tradycja ciągania posłów po sądach za wystąpienia w Sejmie będzie kontynuowana [Lepper 2]
- 2026-01-27 Pierwszy raz sprzedano więcej samochodów zeeletryfikowanych niż ice
- 2026-01-27 Elektryczny Kałasznikow
- 2026-01-27 Warszawa => APM/Observability Engineer (Presales Engineer) <=
- 2026-01-26 #Motodziennik 365 Powrót spalinowych Renault Megane i Scenica, Volvo EX60 oraz ID.Tiguan
- 2026-01-26 Ciekawe fikoły
- 2026-01-26 Toruń => Preseles Inżynier (background baz danych) <=
- 2026-01-26 sznurowadła kwestia prawna
- 2026-01-26 Białystok => Senior Frontend Developer React <=
- 2026-01-26 Warszawa => Consultant Microsoft Dynamics 365 Finance (F&O) <=
- 2026-01-25 Organizacja religijna i nielegalna sprzedaż
- 2026-01-25 Tego "księdza" powinni wywalić z kościołai z pracy w kościele
- 2026-01-25 Zbudowany przez studentów z Holandii samochód koncepcyjny ARIA
- 2026-01-25 Zbudowany przez studentów z Holandii samochód koncepcyjny ARIA
- 2026-01-25 "Teleportacja" polskich statków na pd. Bałtyku - rosyjska zabawa w zakłócanie GPS, Galileo, Beidou i GLONASS




Jak kupić pierwsze mieszkanie? Eksperci podpowiadają