OpenEdv-开源电子网

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

PWM怎么输出确定的几个周期?

[复制链接]

2

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2016-7-18
在线时间
17 小时
发表于 2016-7-22 13:10:43 | 显示全部楼层 |阅读模式
5金钱
比如控制PWM以1KHz的频率输出50个周期,用来控制步进电机转过要求的角度?

最佳答案

查看完整内容[请看2#楼]

不要再中断里判断,要另外的函数,中断计数里只是counter--就行了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
200
金钱
200
注册时间
2015-12-26
在线时间
54 小时
发表于 2016-7-22 13:10:44 | 显示全部楼层
沉寂之森 发表于 2016-7-22 15:43
在原子哥的程序上进行修改的
//定时器3中断服务程序
void TIM3_IRQHandler(u16 counter)   //TIM3中断
...

不要再中断里判断,要另外的函数,中断计数里只是counter--就行了
回复

使用道具 举报

22

主题

751

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1605
金钱
1605
注册时间
2015-6-10
在线时间
222 小时
发表于 2016-7-22 14:14:57 | 显示全部楼层
中断计数
回复

使用道具 举报

2

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2016-7-18
在线时间
17 小时
 楼主| 发表于 2016-7-22 15:43:39 | 显示全部楼层

在原子哥的程序上进行修改的
//定时器3中断服务程序
void TIM3_IRQHandler(u16 counter)   //TIM3中断
{
    if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)  //检查TIM3更新中断发生与否
        {
        TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );  //清除TIM3更新中断标志
       if(counter>0)
        {
            LED1=!LED1;
            counter--;
        }
      else {LED1=1;}   //关闭LED1
        }
}

在main中定义counter为10,可是LED一直在闪,没有停止,请问是怎么回事?
回复

使用道具 举报

2

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2016-7-18
在线时间
17 小时
 楼主| 发表于 2016-7-25 09:18:19 | 显示全部楼层
zhangyimj007 发表于 2016-7-22 13:10
不要再中断里判断,要另外的函数,中断计数里只是counter--就行了

太感谢了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 10:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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