@@ -210,12 +210,12 @@ void OSTmrCreate (OS_TMR *p_tmr,
210210 if (opt == OS_OPT_TMR_ONE_SHOT )
211211 {
212212 rt_flag = RT_TIMER_FLAG_ONE_SHOT |RT_TIMER_FLAG_SOFT_TIMER ;
213- time = dly * (1000 / OS_CFG_TMR_TASK_RATE_HZ ); /* RTT和uCOS-III在定时器时钟源的设计不同,需要进行转换*/
213+ time = dly * (OS_CFG_TICK_RATE_HZ / OS_CFG_TMR_TASK_RATE_HZ ); /* RTT和uCOS-III在定时器时钟源的设计不同,需要进行转换*/
214214 }
215215 else if (opt == OS_OPT_TMR_PERIODIC )
216216 {
217217 rt_flag = RT_TIMER_FLAG_PERIODIC |RT_TIMER_FLAG_SOFT_TIMER ;
218- time = period * (1000 / OS_CFG_TMR_TASK_RATE_HZ );
218+ time = period * (OS_CFG_TICK_RATE_HZ / OS_CFG_TMR_TASK_RATE_HZ );
219219 }
220220 else
221221 {
@@ -248,7 +248,7 @@ void OSTmrCreate (OS_TMR *p_tmr,
248248 if (p_tmr -> Opt == OS_OPT_TMR_PERIODIC && p_tmr -> _dly && p_tmr -> Period )
249249 {
250250 /*带有延迟的周期延时,先延时一次延迟部分,该部分延时完毕后,周期部分由回调函数重新装填*/
251- time2 = p_tmr -> Dly * (1000 / OS_CFG_TMR_TASK_RATE_HZ );
251+ time2 = p_tmr -> Dly * (OS_CFG_TICK_RATE_HZ / OS_CFG_TMR_TASK_RATE_HZ );
252252 rt_timer_init (& p_tmr -> Tmr ,
253253 (const char * )p_name ,
254254 OS_TmrCallback ,
@@ -467,7 +467,7 @@ OS_TICK OSTmrRemainGet (OS_TMR *p_tmr,
467467 switch (p_tmr -> State ) {
468468 case OS_TMR_STATE_RUNNING :
469469 * p_err = OS_ERR_NONE ;
470- remain = p_tmr -> Tmr .timeout_tick - rt_tick_get ();
470+ remain = ( p_tmr -> Tmr .timeout_tick - rt_tick_get ()) / ( OS_CFG_TICK_RATE_HZ / OS_CFG_TMR_TASK_RATE_HZ );
471471#ifndef PKG_USING_UCOSIII_WRAPPER_TINY
472472 CPU_CRITICAL_ENTER ();
473473 p_tmr -> Remain = remain ;
@@ -1153,7 +1153,7 @@ static void OS_TmrCallback(void *p_ara)
11531153 /*带有延迟的周期延时,延迟延时已经完毕,开始进行正常周期延时*/
11541154 CPU_CRITICAL_ENTER ();
11551155 p_tmr -> _dly = 0 ; /* 延迟部分清零,防止再进入本条件分支语句 */
1156- p_tmr -> Tmr .init_tick = p_tmr -> Period * (1000 / OS_CFG_TMR_TASK_RATE_HZ );
1156+ p_tmr -> Tmr .init_tick = p_tmr -> Period * (OS_CFG_TICK_RATE_HZ / OS_CFG_TMR_TASK_RATE_HZ );
11571157 p_tmr -> Tmr .timeout_tick = rt_tick_get () + p_tmr -> Tmr .init_tick ;
11581158 p_tmr -> Tmr .parent .flag |= RT_TIMER_FLAG_PERIODIC ; /* 定时器设置为周期模式 */
11591159#ifndef PKG_USING_UCOSIII_WRAPPER_TINY
0 commit comments