延时代码求详细说明

2019-08-20 18:06发布

我是新手,这局中reload*=1000000/OS_TICKS_PER_SEC;为什么要用1000000来除以OS_TICKS_PER_SEC
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
淡淡的鼬殇
2019-08-21 09:29
回复【3楼】龙之谷:
---------------------------------

reload=SystemCoreClock/8000000; //每秒钟的计数次数 单位为K    
reload*=1000000/OS_TICKS_PER_SEC;//根据OS_TICKS_PER_SEC设定溢出时间
//reload为24位寄存器,最大值:16777216,在72M下,约合1.86s左右
fac_ms=1000/OS_TICKS_PER_SEC;//代表ucos可以延时的最少单位    
SysTick->CTRL|=SysTick_CTRL_TICKINT_Msk;    //开启SYSTICK中断
SysTick->LOAD=reload;  //每1/OS_TICKS_PER_SEC秒中断一次
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk;    //开启SYSTICK

一周热门 更多>