The patch is to change the timeout from 10us to 0 so that we just do a poll for more receive data when there is already data queued. With this patch, the code seems to work just fine with 100Hz timer tick. Thank you, David Mosberger
This commit is contained in:
@@ -482,9 +482,9 @@ void RS485_Check_UART_Data(
|
|||||||
/* data is available */
|
/* data is available */
|
||||||
mstp_port->DataRegister = FIFO_Get(&Rx_FIFO);
|
mstp_port->DataRegister = FIFO_Get(&Rx_FIFO);
|
||||||
mstp_port->DataAvailable = true;
|
mstp_port->DataAvailable = true;
|
||||||
/* FIFO is giving data - don't wait very long */
|
/* FIFO is giving data - just poll */
|
||||||
waiter.tv_sec = 0;
|
waiter.tv_sec = 0;
|
||||||
waiter.tv_usec = 10;
|
waiter.tv_usec = 0;
|
||||||
} else {
|
} else {
|
||||||
/* FIFO is empty - wait a longer time */
|
/* FIFO is empty - wait a longer time */
|
||||||
waiter.tv_sec = 0;
|
waiter.tv_sec = 0;
|
||||||
@@ -514,9 +514,9 @@ void RS485_Check_UART_Data(
|
|||||||
/* data is available */
|
/* data is available */
|
||||||
mstp_port->DataRegister = FIFO_Get(&poSharedData->Rx_FIFO);
|
mstp_port->DataRegister = FIFO_Get(&poSharedData->Rx_FIFO);
|
||||||
mstp_port->DataAvailable = true;
|
mstp_port->DataAvailable = true;
|
||||||
/* FIFO is giving data - don't wait very long */
|
/* FIFO is giving data - just poll */
|
||||||
waiter.tv_sec = 0;
|
waiter.tv_sec = 0;
|
||||||
waiter.tv_usec = 10;
|
waiter.tv_usec = 0;
|
||||||
} else {
|
} else {
|
||||||
/* FIFO is empty - wait a longer time */
|
/* FIFO is empty - wait a longer time */
|
||||||
waiter.tv_sec = 0;
|
waiter.tv_sec = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user