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