I2C (Arduino)
Petr Labaj
labaj na volny.cz
Sobota Prosinec 12 21:33:37 CET 2020
Já o Arduinu vím pendrek. Ale podle dokumentace je tam funkce available(),
která je určitě neblokující a říká, kolik dat je k dispozici.
Takže si timeout a ošetření kolapsu partnera snadno uděláte podle
libosti sám.
PL
***********************
Dne 12.12.2020 v 21:04 Petr Zapadlo napsal(a):
> 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
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list