-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
e.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!news.uzoreto.com!pee
r02.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostra
da.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrad
a.pl.POSTED!not-for-mail
Date: Mon, 27 Feb 2023 12:48:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.8.0
Subject: Re: Programowanie MCU - największa liczba
Newsgroups: pl.misc.elektronika
References: <f...@g...com>
Content-Language: en-GB, pl
From: Adam Górski <gorskiamalpawpkropkapl@xx>
In-Reply-To: <f...@g...com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 47
Message-ID: <63fc9877$0$9593$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.220.112.53
X-Trace: 1677498487 unt-rea-b-01.news.neostrada.pl 9593 83.220.112.53:1305
X-Complaints-To: a...@n...neostrada.pl
X-Received-Bytes: 3145
Xref: news-archive.icm.edu.pl pl.misc.elektronika:778641
[ 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?
>
Problemem jest , że double jest zmiennoprzecinkowe i jak każdy typ
posiada swoją rozdzielczość.
W przypadku a=a+Byle_co; w pewnym momencie osiągnie wartość stacjonarną
i nie będzie się już zwiększać bo Byle_Co będzie poniżej błędu
pojedynczego bitu dla formatu double ( no chyba że się przekręci ).
Taki przykład:
Czy double i =
1000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
00000000.0
da się zwiększać o
0,00000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000001
?
Nie.
Z tego samego powodu z którego int64_t nie da się zwiększać o 0,1.
Jeżeli chcesz żeby to działało to np :
int64_t a = a + Byle_co; gdzie Byle_co >= 1 żeby miało sens.
double b = (double) a * CONST_VALUE;
Poza tym używanie double w przerwaniu to niekoniecznie dobry pomysł ,
ale to już inna historia.
Jeżeli mijam się z prawdą lub jak to się kiedyś mówiło - kłamię , proszę
o korektę.
Pozdrawiam
Adam Górski
Następne wpisy z tego wątku
- 27.02.23 16:18 J.F
- 27.02.23 16:23 J.F
- 27.02.23 17:48 Adam Górski
- 27.02.23 19:08 J.F
- 27.02.23 19:13 Marek
- 28.02.23 08:36 Janusz
- 04.03.23 13:19 Piotr Wyderski
- 04.03.23 13:26 Piotr Wyderski
Najnowsze wątki z tej grupy
- Zagadka radiowa
- Prostownik
- Nowy akumulator Donut Lab
- Pilot do zamka/bramy
- Jaka myjka ultradźwiękowa?
- Retro organizer ale współcześnie
- Skąd diody LED 1,5V?
- Apollo Comm
- PICkit3 mnie pokonał
- LEDy na choinkę zdechły
- Wtopa LED
- Miało być zniesienie abonamentu RTV, a jest podwyżka!!!
- Microsoft, C/C++ na Rust - news
- Pierwsza mapa kosmosu w 102 długościach fal podczerwieni! To początek nowej ery w astronomii
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
Najnowsze wątki
- 2026-01-10 Przeprosiny
- 2026-01-10 Kominiarze
- 2026-01-10 Zagadka radiowa
- 2026-01-10 Prostownik
- 2026-01-09 EKOFASZYŚCI DO NAUKI Chiny odpaliły reaktor na tor. Zachód przespał ten moment? - AstroSzort
- 2026-01-09 Sebastian M
- 2026-01-09 weto nowelizacji ustawy o ś.u.d.e. (wz. DSA)
- 2026-01-09 Warszawa => Dynamics 365 Commerce/POS Developer <=
- 2026-01-09 Ładowanie w 13 minut
- 2026-01-08 Umiejętność tankowania na egzaminie z prawa jazdy
- 2026-01-08 Nowy akumulator Donut Lab
- 2026-01-08 Komenda policji nie ma nic wspólnego ze sprawą zgwałcenia policjantki
- 2026-01-08 Pilot do zamka/bramy
- 2026-01-08 Ślad węglowy
- 2026-01-08 Prezydent SZAP/USONA Trump ułaskawił prezydenta Hondurasu Hernandeza skazanego na 45 lat więzienia




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]