Otevře se na nové kartě

Arduino a funkce millis. Proč nikdy neuvidíte číslo 42.

Ilustrace desky Arduino Uno s čísly 42, 127, 180 a 85

Zajímavé téma ohledně funkce millis() pro vývojové kity Arduino Uno, Nano, prostě desky založené na Atmega328 zveřejnil Michal Dudka.

Zjistil, že po spuštění časovače právě s ATmega328 se nikdy nedočkáte 42 milisekundy a jejich násobků. Zároveň přidal i vysvětlení.

Upřímně, proč časovač v ATMega328 vynechá každou 42 milisekundu mě nikdy nenapadlo a navíc bych ani nečekal, že něco takového bude mikrokontrolér dělat. Ale důvod je ve finále naprosto logický.

Cituji Michala:
Nedávno při nějaké diskuzi mě zaujalo jak je na Aruino (UNO, nano, micro, prostě s Atmega328) řešená funkce millis(). Má zajímavou vlastnost, přibližně každou 42 druhou milisekundu v řadě „vynechává“. Takže když sestavíte primitivní program který bude stále dokola číst hodnotu millis tak se čísla 42 nedočkáte, a nedočkáte se ani 85, 127, 170 … atd. Je to dáno tím, že millis ve skutečnosti počítá s periodou 1.024ms (daň za to že použitý timer nepřijde o jeden PWM kanál) a když celková chyba přesáhne 1ms (nasbírá cca 42 chyb po 0.024ms) tak prostě „poskočí“ o 2ms aby se nerozcházela (zjednodušeně řečeno) – podobně jako když v přestupném roce přidáváme v únoru jeden den abychom ošetřili fakt že rok netrvá přesně 365 dní.

Michal Dudka je velmi zkušený programátor a bastlíř a spravuje svůj vlastní web http://www.elektromys.eu/

Tuto zajímavost sdílel ve facebookové skupině Arduino CZ & SK

Sdílejte článek:
Tričko Chiptron s potiskem Trust me, I'm a maker
Ukaž světu,
že jsi Maker!
Koupit tričko
Kafe pro Chiptrona
Dodej energii dalšímu článku
Buy Me a Coffee

Související články

Modrá výuková deska se čtyřmístným displejem, tlačítky a bzučákem

Každý elektro nadšenec přinejmenším slyšel o Arduino, které získalo obrovskou popularitu díky svým jedinečným vlastnostem.

Arduino Mega propojená s breadboardem a červenou LED

Přehled Arduino simulátorů pro rok 2026: WithDiode (aktuálně offline), Wokwi, Tinkercad Circuits a nový Tinkered s AI. Který vybrat pro školu, bastlení s ESP32, nebo profesionální prototypování?

Ilustrace několika elektronických čidel a senzorů, včetně sondy s kovovým hrotem

Tenhle článek vznikl jako přehled čidel, která se na chiptron.cz objevují nejčastěji – v návodech, meteostanicích, projektech kvality vzduchu i DIY bastlení. Pro každé čidlo najdete klíčové parametry, knihovny pro Arduino / ESP32, případně odkaz na ESPHome nebo Home Assistant integraci, tipy,…

Zmrzlá lahev na talíři, kolem níž měří teplotu pět čidel DS18B20

Rada z internetu říká: postavte doprostřed pokoje lahev se zmrzlou vodou. Michal z Michalova brlohu to místo dohadování změřil pěti čidly DS18B20 ve vzdálenostech 10 až 200 cm. Výsledek po 3,5 hodinách měření je jednoznačný.

Trendy