Added yield to lower CPU usage when no characters are arriving.

This commit is contained in:
skarg
2011-05-10 22:00:32 +00:00
parent e85ab0b49f
commit b863996349
2 changed files with 6 additions and 3 deletions
+5 -2
View File
@@ -217,6 +217,9 @@ static void *dlmstp_master_fsm_task(void *pArg)
if (MSTP_Port.ReceivedValidFrame == false &&
MSTP_Port.ReceivedInvalidFrame == false) {
RS485_Check_UART_Data(&MSTP_Port);
if (MSTP_Port.DataAvailable == false) {
sched_yield();
}
MSTP_Receive_Frame_FSM(&MSTP_Port);
}
if (MSTP_Port.ReceivedValidFrame || MSTP_Port.ReceivedInvalidFrame) {
@@ -241,9 +244,9 @@ static void *dlmstp_master_fsm_task(void *pArg)
break;
}
}
if (run_master)
if (run_master) {
MSTP_Master_Node_FSM(&MSTP_Port);
}
}
return NULL;
+1 -1
View File
@@ -258,7 +258,7 @@ void RS485_Check_UART_Data(volatile struct mstp_port_struct_t *mstp_port)
if (mstp_port->DataAvailable == false) {
/* check for data */
pthread_mutex_lock(&Reader_Mutex);
if (FIFO_Count(&Rx_FIFO) > 0) {
if (FIFO_Count(&Rx_FIFO) > 0) {
mstp_port->DataRegister = FIFO_Get(&Rx_FIFO);
mstp_port->DataAvailable = true;
}