( bucko | 2017. 01. 18., sze – 01:02 )

Ez tényleg az alap szint. ;)
A todomány az AM2320-nál kezdődik, amely i2c, smbus, modbus, spi és sokan mások. Annak ellenére, hogy az i2c szinte bármit lehetővé tesz, itt már csak külön hw timerrel sikerült megoldanom a kickinaji i2c protokollt.
1. Wake-up esetén a stop condition előtt >800us késleltetés kell. (Indulás után rögtön szunyál.)
2. Két címzés között >1600us idő kell kivárni.
3. A cím(bájt) után >30us késleltetést kell beiktatni, mert különben téveszthet. És téveszt is!

Eddig a nyafi, most jön a pikantéria. Összegugliztam githubot, fórumokat miegymást és nem találtam megoldást. Így kénytelen voltam megírni.
Azaz jaj annak, aki letölt egy (valakinek állítólag) működő libet/forrást, majd más környezetben, vagy 10%-kal gyorsabb raspályon próbálja futtatni! A fenti lista szerint az 1. pontot nem tudja az i2c, a 2. késleltetést az user programban kell megvalósítani, míg a 3. szintén nem fér össze a protokollal. Bár ez a 3. lassú futás esetén megvalósulhat egészen addig, amíg gyorsabb gépre nem kerül. Aztán egyszer csak nem működik és jön a fórum. :X