打印

main内延时后(关定时,且延时大于定时器定时),如何保证准确...

[复制链接]
897|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xu6158|  楼主 | 2018-7-4 12:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xu6158 于 2018-7-4 13:54 编辑

最近小弟遇到一个案子,是这样的:
       需要用定时器定个10Ms的时间用来做按键检测和LED闪烁的定时时间,
       并且需要在主程序里IO口模拟PWM,关掉定时器后小延时,大概10Us,100Us,重复200次左右,也就是10-22Ms后,才能重新打开定时器定时
       有没有同学,遇过这种情况,如何补偿定时器的定时,保证定时准确呢?
       想了很多方法都不好用,有没有做过这种延时后,定时不准确的问题之类的高手解答,或者我们交流一下
补充一下,这是用义隆的153MCU做的,时钟只有4MHz,用定时器没法做10us的PWM波形,所以才用延时的办法做的,无奈之举,关键在于,用同样的IC,老外做出来了,所以很好奇,一定有什么好的办法可以实现

原理图如下

相关下载

相关帖子

沙发
gx_huang| | 2018-7-4 13:01 | 只看该作者
如果你的软件总体结构不合理,很难实现的。
你把你需要的任务列出来,然后优化软件结构。
和硬件设计也有很大关系。

使用特权

评论回复
评论
gx_huang 2018-7-4 15:10 回复TA
@xu6158 :你无非以下任务:1、110V升压,需要PWM。2、按键检测。3、LED闪烁。现在最关键的是PWM驱动,需要实时性比较高,PWM周期100us,脉冲10us,这个很容易,只要开一个定时器,周期100us:1、每进去100次,处理按键和LED驱动。2、每进去一次,如果需要PWM,则输出10us高电平。 
xu6158 2018-7-4 13:59 回复TA
已经附上原理图 
gx_huang 2018-7-4 13:30 回复TA
@xu6158 :不同MCU的资源不一样,软件PWM脉冲可以定时器处理,按键抖动也定时器处理,你还是把原理图贴出来,有哪些输入输出,别人才好讨论 
xu6158 2018-7-4 13:07 回复TA
因为单片机只有4M的时钟,10us/100us的PWM脉冲只能用延时来完成,这也是没办法之举,关键是这是能实现的,老外做出来了,我们的产品却没法搞定.所以肯定有什么好的方法的 
板凳
efen| | 2018-7-4 14:08 | 只看该作者
不用定时器,用模拟pwm执行的时间轮询按键检测和led

使用特权

评论回复
地板
xu6158|  楼主 | 2018-7-4 14:27 | 只看该作者
efen 发表于 2018-7-4 14:08
不用定时器,用模拟pwm执行的时间轮询按键检测和led

可是这样的话,定时10ms,怎么实现?因为升压过程中需要10ms/180ms周期的高电平脉冲,使其稳定在110V,如果是30ms的话,这个倒容易了,直接按你说的方法即可的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

26

帖子

4

粉丝