I2C (Arduino)

Petr Zapadlo zapik na email.cz
Sobota Prosinec 12 21:04:11 CET 2020


Zdravím,

měl bych dotaz k použití I2C sběrnice, resp k její obsluze.

Je to na ATmega328. Příkladový kousek kodu:

Wire.requestFrom(I2C_SLAVE_ADDRESS, 10);
while (Wire.available()) {
       pole[i] = Wire.read();
       i++;
       if (i>=10){break;}
     }

A můj dotaz, jak se to bude chovat když Slave nějak zahapruje.

Funkce Wire.requestFrom(I2C_SLAVE_ADDRESS, 10); má vrátit počet byte, tj 
v mém případně bych měl dostat  číslo 10. Už tato funkce načte těch 10 
byte do bufru? A nebo jen dá pokyn "otroku posílej data" a na vlastní 
přenos nečeká?

Má smysl testovat návratovou hodnotu z této funkce?

Když Slave neodpoví, kde se to zasekne, bude se někde na něco čekat? Je 
tam nějaký timeout?

Díky

Petr



Další informace o konferenci Hw-list