Sziasztok,
Felraktam a github-ra egy lib-et, ami async I2C mester-t valósít meg. Atmega és ESP8266 IC-ken működik.
https://github.com/cskarai/asynci2cmaster
Miért más, mint a Wire és társai:
- egyáltalán nem blokkol
- az I2C egy érdekes protokol, mert mester módban interrupt nélkül is elmegy, legfeljebb kicsit lassabb lesz az átvitel. Ez ESP8266-ra is vonatkozik (szoftveres I2C), csak a bitek összevissza hosszúak lehetnek, ha túlterhelt a rendszer. Az i2cMaster.loop() függvényt hívogatom amikor épp ráérek és nem csinálok mást, az meg lezongoráz mindent.
- magyarul: miközben ADC-vel mintavételezek, rádió/infra jelet fogok,... a háttérben szabadidős tevékenységként I2C kommunikációt megvalósítok
- az I2C-s átvitelt sorba lehet rakni: X-nek küldd el ezt, Y-nak azt, Z-nek amazt. Amikor éppen nincs egyéb dolog, lekezelem az I2C-t, sorban végrehajtom a kéréseket, meghívom a callback-eket, amikor befejeződtek.
Példa EEPROM irásra - 3 kérést egyszerre kiadok, a háttérben meg lassan feldolgozódnak. Ráadásul a callback-ből új kérést is be lehet rakni, ami értelemszerűen a sor végére kerül.
https://github.com/cskarai/asynci2cmast ... EEPROM.ino
A teljesen aszinkron megoldások nekem általában jobban tetszenek, mert többre képes a gép, mintha delay-eket hívogatna. Addig ugye nem csinál semmit.
Aszinkron I2C mester lib
ESP8266, ESP32 chipek és az ESP-xx modulok. Programozási nyelvek, trükkök, hardware tippek.
Ugrás
- Hirdetmények
- Programozási verseny
- ↳ A verseny....
- AVR programozás
- ↳ Bascom-AVR nyelvű programozás (AVR programozásának lehetőségei)
- ↳ Arduino / C-nyelvű programozás (AVR-Duino, EthDuino, Arduino, Diecimila)
- ↳ ASM programozás
- ↳ Kizártam magam a chipből...
- ↳ Bascom/Arduino/Wiring frissítések
- ↳ LCD kezelése
- ↳ Mindenféle a könyvekről....
- ↳ Zárolt témák
- ARM programozás
- ↳ Minden, ami ARM
- ↳ ExpressIf WiFi
- PC Programozás
- ↳ Liberty Basic
- ↳ Visual Basic / Visual Basic Application
- ↳ C, C++, Visual C
- Szerszámok-eszközök-hardware
- ↳ Minden, ami forrasztás
- ↳ Nyákkészítés
- ↳ Hardware javaslatok
- Hardware / demopanel
- ↳ Demopanelek
- Ami nem fért máshova
- ↳ Oktatás
- ↳ 60 nap alatt Arduino - Házi feladatok
- ↳ Ami máshova nem besorolható...
- Fejlesztési Blog
- ↳ LCD Printer(LPT) portra
- ↳ AVR és fejlesztőlemeze
- Honlap és egyéb fejlesztések
- ↳ Honlap tippek-javaslatok
- ↳ Bascom, mint fordítószoftver
- ↳ Blog
- ↳ Cikkek
- Apró
- ↳ Apróhirdetés - csere-bere
- ↳ Állásajánlat, munkaajánlat