OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2603|回复: 0

STM32 方波(脈波)寬度量測

[复制链接]

52

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
249
金钱
249
注册时间
2018-10-17
在线时间
40 小时
发表于 2020-10-6 23:09:13 | 显示全部楼层 |阅读模式
我這邊寫了一個利用timer計算脈波方波寬度的程式我覺得比原本正點原子的容易懂還比較準

void TIM5_IRQHandler(void)
{

   if (TIM_GetITStatus(TIM5, TIM_IT_CC1) != RESET)
    {
                       
                switch(get)
                        {
        case 0:
                 ARRAYCOUNTER[counter]=TIM_GetCapture1(TIM5);
                                         counter++;
                                         TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Falling);//設定成負沿觸發//
                                         get=1;                
            break;
        case 1:
                                              ARRAYCOUNTER[counter]=TIM_GetCapture1(TIM5);
                                   TIM5CH1_CAPTURE_VAL=(page*(65535)+ARRAYCOUNTER[counter])-ARRAYCOUNTER[counter-1];
                                        //printf(".....Pluse Width.....page....counter  %d...%d....%d\n",TIM5CH1_CAPTURE_VAL, page, counter);
                                        TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Rising);//設定成正沿觸發//
                                        counter=0;
                                        get=0;         
                                        page=0;
                                        TIM_ClearITPendingBit(TIM5, TIM_IT_CC1); //清除中斷標誌位
            break;
                        }
          }
                if (TIM_GetITStatus(TIM5, TIM_IT_Update) != RESET)
                {
                   page++;
                         TIM_ClearITPendingBit(TIM5,TIM_IT_Update); //清除中斷標誌位
                }
}


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-17 10:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表