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