( locsemege | 2017. 01. 18., sze – 01:20 )

Az I2C egy szabvány. Az az eszköz, amiről írsz, nem tudja ezt, csak valami arra emlékeztető dolgot. Ezt így kell felfogni. Amennyiben IT-ből állapotautomatával csinálod meg a protokollt, úgy a 2. pontot simán bele tudod írni, s a user program semmit sem tud az egészről. Mondom én, hogy jó dolog az állapotautomata, a brw utasítás, meg az egészet IT-ből leküzdeni.

Amúgy számtalanszor azt tapasztaltam, nem szabad lustának lenni. Most is megfordult bennem, hogy emiatt az alig néhány byte miatt nem fogom szépen megírni, hanem alap szinten - értsd: nem megszakításból - csinálok valami blokkolós rutint, amelyik piszkálja a hardware-t. Az ilyen viszont mindig megbosszulja idővel magát, mert előbb-utóbb jól jönne a szép, általános megoldás, bufferelt kezelés IT-ből. Az igénytelen kivitelezés hamar korlátokat jelent majd, s elég gyorsan gányolásra, egyedi probléma megkerülésére vezeti az ember kezét. Ezzel szemben szépen megcsinálni sem sokkal nagyobb munka, sőt, még élvezetesebb is, alap szintről meg gyönyörű a kezelése: beírod a bufferbe, hogy mit szeretnél, mondod neki, hogy „csináld”, az események maguktól történnek innentől, nem kell foglalkozni vele, a végén visszajön egy flag, hogy „elkészült”. Ha olvasás is volt benne, akkor ki lehet olvasni a buffert, aztán meg is vagyunk.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE