diff --git a/Port/8051/port_8051.h b/Port/8051/port_8051.h index 96522814..130a0593 100644 --- a/Port/8051/port_8051.h +++ b/Port/8051/port_8051.h @@ -3,8 +3,8 @@ * @file port_8051.h * @brief 8051 Core Port File * @author 迟凯峰 - * @version V3.2.0 - * @date 2024.12.13 + * @version V3.3.0 + * @date 2024.12.27 ******************************************************************************/ #ifndef __PORT_8051_H @@ -160,26 +160,24 @@ do{ \ #define mUsedTime_END \ do{ \ if(usedtime[0]){ \ - usedtime[0]--; \ - usedtime[1] = 65536 - usedtime[1] + counter - mSysTick_InitValue; \ + s_task_current->usedtime[0] += usedtime[0] - 1; \ + usedtime[0] = 0; \ + usedtime[1] = 65536 - usedtime[1] + tick_counter - mSysTick_InitValue; \ + } \ + else if(tick_counter <= usedtime[1]){ \ + usedtime[0] = ~0; \ + usedtime[1] = 65536 - usedtime[1] + tick_counter - mSysTick_InitValue; \ } \ else{ \ - if(counter >= usedtime[1]){ \ - usedtime[1] = counter - usedtime[1]; \ - } \ - else{ \ - usedtime[1] = 65536 - usedtime[1] + counter - mSysTick_InitValue; \ - } \ + usedtime[1] = tick_counter - usedtime[1]; \ } \ - s_task_current->usedtime[0] += usedtime[0]; \ s_task_current->usedtime[0] += (s_task_current->usedtime[1] + usedtime[1]) / mSysTick_Cycle; \ s_task_current->usedtime[1] = (s_task_current->usedtime[1] + usedtime[1]) % mSysTick_Cycle; \ }while(false) #define mUsedTime_INIT \ do{ \ - usedtime[0] = 0; \ - usedtime[1] = counter; \ + usedtime[1] = tick_counter; \ }while(false) #if SYSCFG_PENDSVFIFO_MONITOR == __ENABLED__