jyrry píše:
Jak tyhle pomocné funkce fungují? Mně to v PICech skoro vždy nabourávalo program, když jsem začal používat přerušení... Proto je radši už nepoužívám.
Jsou to funkce alias metody objektů v daném případě je objekt
mojeServo ve skutečnosti objekt třídy
Servo a má různé funkce z nichž jedna je
write. Zde zmíněná knihovna pro práci se servy je ve skutečnosti objektově napsaný zdroják v C++
Servo.cpp. Funkce
mojeServo.write jen nastaví příslušné hodnoty, které se následně využívají až ve funkci obsluhy přerušení kde se provádí časově kritické operace viz funkce
handle_interrupts ve zdrojáku
Servo.cpp.
Zdrojáky pro arduino se píšou v programovacích jazycích C/C++ jak z hlediska knihoven tak i z hlediska různých aplikací. Zmíněné programovací jazyky umožňují dosažení velmi nepříjemných chyb, které se velmi špatně odhalují a mohou způsobovat neočekávané chování třeba v kombinaci s jiným kódem.
Obsluha přerušení je dobré řešení, ale pokud je někde chyba může to být problém. Různé knihovny/zdrojáky pro arduino existují v různých verzích (starší/novější) a ta či ona verze také nemusí být bez chyb.
To zda byl v tom či onom případě problém v nějaké chybě té či oné verze knihovny, kterou jsi využíval nebo případně ve tvém kódu přičemž se chyba projevila až v kombinaci s nějakou knihovnou to je otázka pro věštírnu.