TIM5_CH1_CAPTURE_STA不是程序中定义的一个变量吗?为什么可以看做寄存器来判断是否捕获成功?
程序中我们定义了一个 u8 类型的全局变量 TIM5_CH1_CAPTURE_STA,此变量
可以看成类似一个字节的寄存器,bit7 用来表示捕获完成,bit6 用来表示捕获
到高电平,bit5-0 用来表示捕获高电平后定时器溢出次数。
以下为部分代码:
主函数:
u8 TIM5_CH1_CAPTURE_STA; //输入捕获状态
u16 TIM5_CH1_CAPTURE_VAL;//输入捕获值
中断函数:
if((TIM5_CH1_CAPTURE_STA&0x80)==0) //还未成功捕获
{
if(TIM_GetITStatus(TIM5,TIM_IT_Update)) //发生更新中断
{
if(TIM5_CH1_CAPTURE_STA&0X40)//捕获到了高电平
|