Innostuin koodailemaan pitkästä aikaa AVR:ää C:llä ja sekin vähä, mitä olen joskus osannut, tuntuu olevan unohtunut. Ajattelin koodata ruletti-ohjelman ja ohjelman rakenteen haluaisin pilkkoa useampaan lohkoon (esim. ledien välkytys rutiinit omaansa, pelin kulku omaansa, sisääntuloarvojen ja ulosmenojen kirjoitukset omiinsa). Noita aliohjelmia ei voi laittaa funktioihin, sillä niiden pitää sekä muistaa tilansa ohjelmakierrosta toiseen. Onko C:ssä mahdollista toteuttaa haluamanilaista lohkomaista ohjelmarakennetta, vai onko funktiot + glogaalit muuttujat ainoa ratkaisu?
AVR:lle on monia reaaliaikakättöjärjestelmiä (RTOS), joissa ajetaan taskeja, jotka ovat omia prosesseja.
Näitä taskeja voisi ongelmaasi soveltaa.
Voit myös käyttää paikallisia, staattisia muuttujia, jotka säilyttävät tilansa funktiokutsujen välillä.
Jep, kiitoksia. Nuo paikalliset staattiset muuttujat hoitavat toistaiseksi asian, mutta täytyypä tutustua noihin käyttiksiinkin. Kokemuksia, suosituksia?
Aihe on jo aika vanha, joten et voi enää vastata siihen.