飞翼我的心 发表于 2016-11-19 14:44:47

time1定时器

我现在用time1输出一个固定频率的pwm,我打算在中断里控制其高电平(比如每三个高电平关闭pwm输出),可行吗

xhzheng 发表于 2016-11-19 14:58:46

不如直接计算好频率就OK了,
不需要那么麻烦;

飞翼我的心 发表于 2016-11-19 15:04:03

xhzheng 发表于 2016-11-19 14:58
不如直接计算好频率就OK了,
不需要那么麻烦;

你意思改变pwm输出频率?

zhangxu56726 发表于 2016-11-19 15:42:26

可以,我这么用过

zhangxu56726 发表于 2016-11-19 15:42:42

可以,我这么用过

飞翼我的心 发表于 2016-11-19 15:46:05

zhangxu56726 发表于 2016-11-19 15:42
可以,我这么用过

用的输入捕获还是啥,能具体说说吗

zhangxu56726 发表于 2016-11-19 15:50:20

飞翼我的心 发表于 2016-11-19 15:46
用的输入捕获还是啥,能具体说说吗

打开tim1比较中断,把计算好的值,在中断里设置高电平就可以了

飞翼我的心 发表于 2016-11-19 15:54:06

zhangxu56726 发表于 2016-11-19 15:50
打开tim1比较中断,把计算好的值,在中断里设置高电平就可以了

没懂,什么叫把计算好的值设置为高电平?

wdshuang09 发表于 2016-11-19 22:56:09

可以的,检测三个周期就有三次是高电平,用一个变量计数,计数到后关闭PWM即可

peter001 发表于 2016-11-20 11:00:18

楼主是想在中断里改变PWM波的高电平脉冲宽度是不是?如果这个目的,是可以在中断中写入新的CCRx寄存器值,达到改变脉宽的目的。也可以不用中断,设置OCxPE,可以在中断外部改变CCRx寄存器,定时器更新时自动加载。
如果楼主是想输出特定数量的PWM波,比如想输出3个50%占空比的方波,ARR寄存器设置你的pwm频率,CCRx寄存器设置为ccrx=arr/2,可以在中断里设置计数变量,到达需要数目关闭定时器输出,也可以使用TIMx_RCR寄存器相关用法,自动计数输出。

页: [1] 2
查看完整版本: time1定时器