Data is requested elsewhere, when the data becomes available the data is put into a Queue. log_i( " high watermark % d", uxTaskGetStackHighWaterMark( NULL ) ) X_eData.WindChill = sWindChill.toFloat() XSemaphoreTake ( sema_eData, portMAX_DELAY ) ncat ( sDewPoint.substring(0, commaIndex) ) If ( xQueueReceive(xQ_WindChillDewPoint, &px_message, portMAX_DELAY) = pdTRUE ) I hope that you are not using the I2C bus between two Arduino boards, that would be a bad idea.Ĭonsider the following task void fParseDewPointWindChill( void *pvParameters ) You can not rely on a timeout to fix problems of the I2C bus. If you need a timeout, then you first have to fix your I2C bus. I think that somehow there is a mix between these things. The timeout of the Stream class has a default of 1 second (1000 milliseconds) and the timeout for low level I2C code for the Arduino Uno is in microseconds. The ESP32 uses the function name "setTimeOut" (as in the Stream class) and uses that for low level I2C code. The Stream class has a timeout for Serial communication (useless for the I2C bus): tTimeout() - Arduino Reference The Arduino Uno has a timeout for the low-level I2C code: setWireTimeout() - Arduino Reference Which timeout are you using where and how and why do you want to use a timeout ?
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |