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