McuLab jediný zdroj v čipu jsou takty

Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.

Watchdog: dvě špatné strany

Hlídací obvod je čítač, který resetuje procesor, když ho nikdo včas neshodí. Nastavuje se jediným číslem a to číslo má dvě špatné strany, ne jednu.

rozptylwatchdog kousne40 msčasový limit je bezpečně za rozptylemdetekce zatuhnutí trvá 40 msnejdřív smí kousnout v 11 mskaždý povolený výpadek dělí planá zastavení p-krát
Zelené značky jsou krmení, zlatý pruh je rozptyl, červená čára je okamžik resetu. Zvětši rozptyl a sleduj, kdy se limit dostane dovnitř.
tlimit = perioda krmení × povolené výpadkytáž aritmetika jako v RoboLinkLabu

Příliš krátký

Krmení nikdy nepřijde přesně na čas — smyčku zdrží přerušení, zápis do flash, delší zpráva. Když je limit uvnitř toho rozptylu, watchdog zastaví funkční stroj. A následek není ten reset: následek je, že to obsluha vypne, a od té chvíle nehlídá nic.

Příliš dlouhý

Limit deset sekund znamená, že mrtvý program běží deset sekund. U stroje, který se pohybuje metrem za sekundu, to je deset metrů. Doba do resetu je součástí doby zastavení a patří do rozpočtu v SafetyLabu, stejně jako doba odpadu relé z GpioLabu.

Kolik výpadků povolit: každý další dělí četnost planých resetů pravděpodobností jednoho opožděného krmení. Při p = 10⁻³ je jeden výpadek reset jednou za deset sekund, čtyři výpadky jednou za tři sta let. Čtyři jsou obvyklý kompromis — a je to totéž číslo, které z jiné strany vychází RoboLinkLabu pro bezdrátovou smyčku.

A hlídat se má práce, ne běh

Nejčastější chyba: krmit watchdog v přerušení časovače. Takový watchdog hlídá, že tiká časovač — a ten tiká i tehdy, když se hlavní smyčka zasekla v nekonečném cyklu. Krmení patří tam, kde je vidět, že práce doopravdy proběhla: každá úloha nastaví svůj příznak, a krmí se, jen když jsou všechny.

Vzorce v této kapitole

t — časový limit watchdogu
t = perioda × výpadky [s]