Szia,
Láttam, nem reagáltál a felvetésemre.
Nos, nézzük részletekben.
1. Ha valami nincs előre meghatározva, akkor alapértelmezett a „magától éretődő” kivitelezés. Pl. ha időt mérünk, akkor praktikusan jó, ha azt pontosan tesszük. Itt persze a pontosság viszonylagos, de vannak bizonyos hétköznapi fogalmaink arról, hogy ha óráról beszélünk, akkor mondjuk 1 nap ne legyen 15 perc járateltérés, mert a hét végére hülyén fogja kivenni magát, hogy 7 óra helyett 8 órakor kelünk (és így tovább). Vannak alkalmazási területek, ahol minden idősíkon 1 mp és 1 év között a milliszekundumos pontosság a követelmény, erre nyilván nem egy retek Arduino a válasz. A pontosságot azért írtam, mert a rendszer kb. ezt tudja (ha nem kristályos, hanem rezonátoros a kapcsolás, akkor még ezt sem), és az alkalmazása előtt ezt alapból figyelembe kell vennie a felhasználónak. Amolyan apróbetű.
2. Ami a fejlesztői környezetet illeti. Ez egy szimulátor alapvetően, amelyből a kész hex-eket simán át lehet tölteni bármilyen Arduinoba (kis túlzással) vagy különálló eszközre, akár kész kódként. Jópofa cucc, de alapvetően -- ahogy nézem -- valahol a gépi kód, valamint a regiszterek és egy magasabb szintű kód (mondjuk C) között van, mindkettőből merítve elég vastagon (még ha a szintaktikája láthatóan viszonylag egyedi is). Arra jó is jó, hogy egyedi gépi kódú instrukciók szintjéig lehet debugolni, ami mondjuk nem egy mindennapi lehetőség.
Ugyanakkor az tény, hogy minden magasabb szintű nyelv valamelyik könyvtárába implementálva van a várakozás valamilyen formában. Arduinoban a delay(), mbedben a tick() és a wait(), C++-ban (11-től) a sleep valamilyen formája (vagy a standard könyvtárban vagy valamelyik időzítésre kitalált könyvtárban). Az tehát nem nagy nehézség, hogy várakozásra késztessünk egy processzort, a kérdés az, hogy körülötte mit csinál a program, illetve az, hogy ezzel mennyi ideig kell szívnunk (nem tartom kizártnak, hogy barkócza nekiállt gépi kódban, tisztán az órajelek tekergetésével megoldani a feladatot -- kérdés, hogy ezzel mennyi időt fog igénybe venni és a kész kód mekkora lesz. Nekem kb. 45 perc volt, és szépítgettem is (mondjuk nem tökéletesre), 1 kB a kód, ami cseppet több, mint amit ideálisnak tartanék erre a feladatra, cserébe átlátható, olvasható, bármikor nehézség nélkül (évek múltán is) karbantartható különösebb dokumentáció nélkül, és nem mellesleg az Arduino keretrendszeren belül bármelyik eszközre nehézség nélkül portolható.
Bármit bármivel meg lehet oldani, lényegében teljesen szabadon. A kérdés csak az, hogy ez mennyi idő, mennyire egyedi és mennyire karbantartható/olvasható. Ezért is vagyok kíváncsi a te megoldásodra.