[求助] stm8s pwm输出

sang523   2016-11-26 15:55 楼主
悬赏 5 分 芯积分未解决
现在已经用tim1输出一个频率固定,占空比固定的pwm,来控制灯。现在我要控制灯的功率,但是领导要求不能改变tim1寄存器的参数,所以我打算用另一个定时器进行中断定时来控制该pwm,比如在中断函数里30us输出pwm,30us关闭pwm输出,跟中断里实现led灯闪烁差不多。现在我通过该方式确实实现了控制灯的功率变化,但是这样频繁地进中断是否可行,毕竟程序里还有
其他的保护,求了解的给个建议

回复评论 (12)

这个很好改,直接在中断里面加计数器
点赞  2016-11-26 16:44
可以适当降低给灯的pwm的频率。这样,就可以在tim1的中断函数里,通过一个变量,去控制pwm是否输出。
点赞  2016-11-26 20:27
控制功率其实通过把LED的串联电阻换大点也可以啊,必须要用软件方式来实现吗,如果必须的话,就看看其他中断有没有占用特别久的或者有没有进去关闭总中断的,都没有的话,应该影响不是很大
点赞  2016-11-26 21:05
软开销大,不是特别好。用与门或开漏io也可以。
点赞  2016-11-26 22:36
引用: kk118a 发表于 2016-11-26 16:44
这个很好改,直接在中断里面加计数器

我已经通过加计数器实现了,可是这样频繁地进中断合理吗
点赞  2016-11-28 08:22
引用: ienglgge 发表于 2016-11-26 20:27
可以适当降低给灯的pwm的频率。这样,就可以在tim1的中断函数里,通过一个变量,去控制pwm是否输出。

给灯的pwm频率应该变不了,在tim1中断里面控制输出和在其他定时器中断里面控制会有不同吗
点赞  2016-11-28 08:24
引用: huo_hu 发表于 2016-11-26 22:36
软开销大,不是特别好。用与门或开漏io也可以。

软开销指的什么?我用的是硬件pwm,跟io关系不大吧
点赞  2016-11-28 08:31
肯定是改Tim1最简单啊,没必要开销两个定时器
点赞  2016-11-28 09:47
引用: 仙景 发表于 2016-11-28 09:47
肯定是改Tim1最简单啊,没必要开销两个定时器

我听说一个定时器最好不要同时中断定时和输出pwm
点赞  2016-11-28 12:04
引用: sang523 发表于 2016-11-28 08:24
给灯的pwm频率应该变不了,在tim1中断里面控制输出和在其他定时器中断里面控制会有不同吗

在tim1中断里面控制输出,就不需要再为调pwm而单独开一个定时器,避免增加中断函数啊。
点赞  2016-11-28 13:13
其实单片机的哪个功能都是稳定的。只要用好就行。就看哪个方便。
点赞  2016-11-28 13:55
引用: damiaa 发表于 2016-11-28 13:55
其实单片机的哪个功能都是稳定的。只要用好就行。就看哪个方便。

哦,但我担心进中断的时候其他保护就没法工作了,何况我用的中断定时要求到微妙级,实际使用后感觉总是没那么精确
点赞  2016-11-28 15:59
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复