延时代码求详细说明

2019-08-20 18:06发布

我是新手,这局中reload*=1000000/OS_TICKS_PER_SEC;为什么要用1000000来除以OS_TICKS_PER_SEC
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
xyz1015231411
2019-08-22 07:59
reload=SYSCLK/8;  
//此时,一个reload的时间,等于1us.

reload*=1000000/OS_TICKS_PER_SEC;  
//OS_TICKS_PER_SEC,表示1秒钟有多少个节拍,假定是200,那么中断时间必须是5ms中断一次.
//要5ms中断一次,是不是reload*=5000

5000是不是等于:1000 000/200??

上面说reload*=5000 ?但reload是之前reload=SystemCoreClock/8000000得到的,如SystemCoreClock=72MHZ,OS_TICKS_PER_SEC=1000.
那程序 reload=SystemCoreClock/8000000;  
        reload*=1000000/OS_TICKS_PER_SEC    这里就等于9/1000=0.009这是什么概念,0.009是什么?

一周热门 更多>