I2C (Arduino)

Petr Zapadlo zapik na email.cz
Sobota Prosinec 12 21:44:53 CET 2020


Však já tam tuhle funkci používám, ale byl jsem svědkem toho, že I2C 
slave byl nějaký zaseklý a Atmegu mi resetoval WDT, protože se čekalo na 
nějakou operaci na I2C sběrnici.

Snažím se tomu nějak předejít a když nad tím tak přemýšlím, tak podle 
mě  už Wire.requestFrom(I2C_SLAVE_ADDRESS, 10); musí zajistit ten přenos 
dat do bufrů, které jsou pak testovány pomocí Wire.available()

Jelikož nikde nejsou nějaké pauzy na přenos, a funkce RequestFrom a 
available jdou hned za sebou, tak podle RequestFrom končí až v okamžiku, 
kdy je v bufru 10 byte a pokud zahapruje Slave, tak se to pozná už v 
rámci RequestFrom.

A tem jsem možnost nějakého timeout nenašel.

Myslím si to správně?

Petr

Dne 12. 12. 20 v 21:33 Petr Labaj napsal(a):
> 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
>
> _______________________________________________
> 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