Számítástechnikát ugyan még nem tanítottam, de mikroprocesszoros vezérléseket már igen. És igen, elmondanám - s el is mondtam -, hogyan épül fel egy számítógép, mitől képes program végrehajtására, mi a fene az a Neumann-architektúra, Harvard-architektúra, hogyan éri el a CPU a memóriát, perifériákat, mi a fene az a megszakítás, mi a közvetlen memória hozzáférés, érintettük a kombinációs hálózatokat, a szinkron szekvenciális hálózatokat is.
Aztán adtam feladatokat, minden egyes tanulónak mást, hogy ne egy valaki csinálja meg, a többiek meg lemásolják, mert abból nem tanulnak. Mondjuk az a feladat, hogy bekapcsoláskor hétszegmens LED-kijelzőn nullát látsz, van két nyomógombod, ha az egyiket megnyomod, nő eggyel a kijelzőn a szám, a másik gomb megnyomása pedig 3-mal csökkenti, de úgy, hogy nullánál kisebb nem lehet.
A billentyűkezelést megoldhatja pollingolással, de erősen javasolt ezt egy timer-t felhúzva időalap megszakításból kezelni. Nyilván kezelni kell a billentyű pergését. Ha egyszer megnyomom, nem elfogadható, hogy 2-3-4 gombnyomásnak detektálódik. A feladatból látszik, hogy egy picike táblázatkezelés is van benne. Ugye a hétszegmens kijelzőre írandó karakter alakját elő kell állítani valahogyan. A megszakítást sem nagyon ússza meg, mert a két digit multiplexelt, nem független porton vannak a szegmensek.
Hidd el, ilyenekből sokat lehet tanulni. Az nem tanítás, hogy feltesznek az írásvetítőre egy assembly kódrészletet, aztán másoljátok le a füzetbe.
Szemléletet, gondolkodást kell tanítani, nem azt, hogy a Format menü, Character... almenü Position fül Spacing mezejében tudod állítani a karakterek közti távolságot. Ezt én sem tudom fejből, de meg tudom keresni, ha szükségem van rá.
tr [:lower:] [:upper:] <<<locsemege
LOCSEMEGE