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)//捕獲到了高電平
|