高级会员

- 积分
- 764
- 金钱
- 764
- 注册时间
- 2016-7-26
- 在线时间
- 123 小时
|
5金钱
while(1)
{
if(((TIM2->SR&0X0001)==1)&&((TIM2->CCER & 0X0002)==0X0002)) //下降沿触发和判断是达到最大(可以用标志位来判断)
{
time++;
TIM2->SR &= 0xfffe;
}
if(InterruptComplete==complete)
{
temp = (((float)1/(72*1000*1000))*(Counter+time*Max))*10; //Max是0xffff
printf("脉宽是:%fs\n",temp);
InterruptComplete = 0; //中断检测到下降沿完成标志清零
time = 0;
}
}
自己写的渣渣程序,有一点不懂得是:
temp = (((float)1/(72*1000*1000))*(Counter+time*Max))*10;
后面要*10才与现实的时钟秒表相一致,差零点几或零点零几,但是我感觉没必要*10,我的程序哪有错?就只有这个问题!!!!!!
|
|