控制输出方波的脉冲数和周期

2019-07-20 00:51发布

好多人遇到这个问题,额!
现在我用了两种方法实现,感觉都不好!
 方案1:定时器翻转IO,到达指定个数关闭TIM
方案2:PWM,开启比较捕获中断,到达指定个数关闭TIM

感觉都是频繁进中断,占用大量CPU资源。不能做其他事了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
36条回答
飞羽1918
1楼-- · 2019-07-23 07:04
 精彩回答 2  元偷偷看……
cwfwh
2楼-- · 2019-07-23 07:31
不知道这个算法准不准,楼主帮我测一下吧。
void puls(u16 f,u16 count)
{  unsigned char flag=1;
        u16 number,temp=count;
        TIM3_PWM_Init(f,0);         //f为PWM频率
        TIM_SetCompare2(TIM3,f/2);  //50%占空比
        do{
        number=TIM3->CNT ;        //TIM3当前计数值
        if(flag&&number>=f/2)      
        {
                temp=temp-1;
                flag=0;
        }
        if(number>=1&&number<f/2)
        {
                flag=1;
        }
        }while(temp>0);                 
        if(!temp) RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, DISABLE);  
}
kia350
3楼-- · 2019-07-23 12:58
 精彩回答 2  元偷偷看……
yuanmo
4楼-- · 2019-07-23 18:38
 精彩回答 2  元偷偷看……
王子特
5楼-- · 2019-07-23 20:18
楼主,求代码~~
babylxg
6楼-- · 2019-07-23 21:13
我下个星期回去了  测试整理一下就把代码发上来  好久了 我要找一下

一周热门 更多>