输入捕获中,计算脉宽长度算法:
主函数中,一直判断是否完成捕获
定时器中断函数中,判断①是否捕获;②是否溢出。
①中有两种可能,完成一次捕获 或者 开始一次计数
②中也有两种可能,强制结束捕获 或者 标记溢出一次
注意点:
- 库函数ClearITPendingBit:清除线路挂起位 ;库函数ClearFlag:清除线路挂起标志位
- TIM5CH1_CAPTURE_STA变量定义,使用8位来统一控制
- if(TIM5CH1_CAPTURE_STA&0X80) 语句的意思,0~7位,判断第7位是否为1
- if( (TIM5CH1_CAPTURE_STA&0X80)==0 ) 语句的意思,判断第7位是否为0,与第3条意思相反
- 开始一次计数的时候,标志位、计数位 和 定时器计数全部清零;结束捕获的时候,捕获结束标志位置1,获取计数。