( bucko | 2020. 11. 25., sze – 08:03 )

...ne kelljen minden újabb eszköznél újraírni mindent.

Van egy állapot automata (valami ilyesmit próbál leírni a dokumentáció is "event" -ekkel) ami kezeli, azt hogy
- címzel, majd írsz 3 bájtot

Rossz válasz. ;)

A nagy katyvaszt az OSI-modellhez hasonlóan rétegekre kell bontani, hogy átlásd a zűrzavart. Némi rendszerezés után minden réteghez tartozhatnak bizonyos tevékenységek, amelyeket valamilyen rendszer szerint el kell végezni.

Az alábbiakban egy hozzávetőleges leírás vázlata következik pl. az ina226 kezeléséhez.

  1. fizikai réteg
    • Nem részletezem.
  2. i2c réteg
    • start condition
    • restart condition
    • stop condition
    • write address
    • write data
    • read data
    • read ack
    • stb.
  3. smbus réteg
    • write register
    • read register
    • alert kezelés (opcionális)
  4. alkalmazás réteg
    • mit csinálunk az adatokkal?
  5. felhasználói réteg
    • pl. mérés, kijezés

A 2. réteg: Az i2c busz kezelése, amihez kell a hardver specifikáció. Minden ehhez tartozó interrupt-hoz meg kell írni a hozzá tartozó akció(ka)t.

A 3. réteg: Az ina smbusz(-szerű) protokollal kommunikál. Ehhez meg kell írni az általa használt smbusz parancsokhoz szükséges akciók sorozatát. Ezeket a következő rétegből lehet hívni. *

A 4. réteg: busz kommunikáció adatait valahonnan vagy valahová kell rakosgatni.

Az 5. réteg: Végül a megszerzett adatokkal valamit kell csinálni - ez a főprogram.

A leírtakhoz képest mindig létezik egyszerűbb út, amit általában sokkal nehezebb megvalósítani. ;) Ez a felépítés lehetővé teszi még a kezdő programozónak is, hogy tyúklépésben, hiba nélkül oldja meg a feladatot. Persze nem árt még egy kis segítség: a liberó! Ennek az eszköznek a segítségével könnyedén szerkeszthetsz állapotautomatát. Ha nem is használod, akkor is érdemes elolvasni, mert át fogja alakítani a szemléletmódodat. Ezzel az eszközzel felvértezett komplex programrendszert a tojáshéjas seggű ifjoncok már 2-3 hét múlva programozták, azaz képesek voltak termelni.

* És itt jön az, hogy más, tetszőleges hasfájásal kommunikáló eszközt is könnyedén be tudsz illeszteni.

Nem atomreaktort kell vezérelni, csak olyan technológiát kidolgozni ahol az mcu (amivel dolgozok)

Nincs itt semilyen atomreaktor! Tetszőleges hardverhez jó, és tetszőleges nyelven írhatod. Csak C-ben kicsit bonyolultabb... ;)

Én meg csak dumálok a levegőbe... Amint lesz időm dolgozni :-D, éppen egy új i2c eszközt kell illesztenem. Majd megírom, hogy hány munkaórába került a fenti technológiával.