亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: STM32單片機(jī)輸入捕獲程序邏輯問題,迫切請(qǐng)求前輩指點(diǎn) [打印本頁]

作者: MNwcy    時(shí)間: 2019-4-2 13:54
標(biāo)題: STM32單片機(jī)輸入捕獲程序邏輯問題,迫切請(qǐng)求前輩指點(diǎn)
初始化函數(shù)沒有問題,定時(shí)器頻率為1MHZ,編程思路是定義兩個(gè)全局變量一個(gè)32位的TIM_CH1_CAPTURE_VAL一個(gè)8位的TIM_CH1_CAPTURE_STA,32位用來存放輸入捕獲值,8位的最高位用來表示捕獲到高電平(1表示捕獲)次高位表示脈沖是否捕獲完成(捕獲完成置1),低六位用來表示計(jì)數(shù)器溢出次數(shù)的,每溢出一次自加一,通過定義的i/o口結(jié)合按鍵手動(dòng)輸入高電平,本來是不會(huì)出現(xiàn)溢出情況的(32位定時(shí)器溢出需要4千多秒)但是按一下按鍵有的時(shí)候就會(huì)出現(xiàn)溢出的那種情況,實(shí)在是找不出來有什么邏輯問題了,求大神指教,本人虛心求教萬望各位指點(diǎn)一二

STM32單片機(jī)主函數(shù)
int main()
{
long long time=0;
u8 a=0;
SysTick_Init(168);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  
LED_Init();
USART1_Init(9600);
Input_Init(0xffffffff,83);
while(1)
{
  a=TIM_CH1_CAPTURE_STA;
  a&=0x40;
  while(a==0x40)
  {
     a=TIM_CH1_CAPTURE_STA&0x80;
    if(a!=0x80)
    {
     a=TIM_CH1_CAPTURE_STA;
     a&=0x3f;
     time=TIM_CH1_CAPTURE_VAL+a*0xffffffff;  
     printf("¸ßµçƽ³ÖÐøÊ±¼ä %lld us\n",time);
     time=0;
     TIM_CH1_CAPTURE_VAL=0;
     TIM_CH1_CAPTURE_STA=0;
    }
    else
    {
     if(a==0x80)
     {
      time=0x3f*0xffffffff;
      printf("%lld\n",time);
      TIM_CH1_CAPTURE_STA=0x80;
     }
    }
    a=0;
  }
  led1=!led1;
  delay_ms(200);
}
}
中斷服務(wù)函數(shù)
void TIM5_IRQHandler(void)
{
if(TIM_GetITStatus(TIM5,TIM_IT_Update)==1)  
{
  if(TIM_CH1_CAPTURE_STA>=0x80)   
  {
   if(TIM_CH1_CAPTURE_STA==0x3f)  
   {
    TIM_CH1_CAPTURE_STA|=0x40;  
    TIM_Cmd(TIM5,DISABLE);
    TIM_SetCounter(TIM5,0);
    TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Falling);
    TIM_Cmd(TIM5,ENABLE);
   }
   else
   {
    TIM_CH1_CAPTURE_STA++;   
   }
  }
  else
  {
   
  }
}
else  
{
  if(TIM_GetITStatus(TIM5,TIM_IT_CC1)==1)
  {
   if(TIM_CH1_CAPTURE_STA<0x80)
   {
    TIM_CH1_CAPTURE_STA=TIM_CH1_CAPTURE_STA|0x80;  
    TIM_Cmd(TIM5,DISABLE);
    TIM_SetCounter(TIM5,0);
    TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Falling);
    TIM_Cmd(TIM5,ENABLE);
   }
   else      
   {
    TIM_CH1_CAPTURE_VAL=TIM_GetCapture1(TIM5);
    TIM_CH1_CAPTURE_STA|=0x40;
    TIM_CH1_CAPTURE_STA&=0x7f;
    TIM_Cmd(TIM5,DISABLE);
    TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Rising);
    TIM_Cmd(TIM5,ENABLE);
   }
  }
}
TIM_ClearITPendingBit(TIM5,TIM_IT_Update|TIM_IT_CC1);
}





歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1