Sfoglia il codice sorgente

update:TIM偏差1个cnt

alienwalker 4 anni fa
parent
commit
940cfa98dc

+ 1 - 1
bsp/air105/hal/core_hwtimer.c

@@ -239,7 +239,7 @@ START_HWTIMER:
 	TIMM0->TIM[HWTimerID].ControlReg = 0;
 	Period = HWTimer->Cmd[HWTimer->CurCount].uArg.Time;
 	Period = Period * SYS_TIMER_1US + HWTimer->Cmd[HWTimer->CurCount].Arg1;
-	TIMM0->TIM[HWTimerID].LoadCount = Period;
+	TIMM0->TIM[HWTimerID].LoadCount = Period - 1;
 	TIMM0->TIM[HWTimerID].ControlReg = TIMER_CONTROL_REG_TIMER_ENABLE|TIMER_CONTROL_REG_TIMER_MODE;
 	HWTimer->CurCount++;
 	return ;

+ 1 - 1
bsp/air105/hal/core_tick.c

@@ -76,7 +76,7 @@ void CoreTick_Init(void)
 {
 	prvPeriod = SystemCoreClock;
 	TIMM0->TIM[CORE_TICK_TIM].ControlReg = 0;
-	TIMM0->TIM[CORE_TICK_TIM].LoadCount = prvPeriod;
+	TIMM0->TIM[CORE_TICK_TIM].LoadCount = prvPeriod - 1;
 	TIMM0->TIM[CORE_TICK_TIM].ControlReg = TIMER_CONTROL_REG_TIMER_ENABLE|TIMER_CONTROL_REG_TIMER_MODE;
 	ISR_OnOff(CORE_TICK_IRQ, 0);
 	ISR_SetHandler(CORE_TICK_IRQ, SystemTickIrqHandler, NULL);

+ 1 - 1
bsp/air105/hal/core_timer.c

@@ -84,7 +84,7 @@ static void Timer_SetNextIsr(void)
 		}
 		prvTimerCtrl.NextTick = Timer->TargetTick;
 		ISR_Clear(SYS_TIMER_IRQ);
-		TIMM0->TIM[SYS_TIMER_TIM].LoadCount = (uint32_t)PassTick;
+		TIMM0->TIM[SYS_TIMER_TIM].LoadCount = (uint32_t)PassTick - 1;
 		TIMM0->TIM[SYS_TIMER_TIM].ControlReg = TIMER_CONTROL_REG_TIMER_ENABLE|TIMER_CONTROL_REG_TIMER_MODE;
 	}
 	OS_ExitCritical(Critical);