找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3126|回复: 12
收起左侧

51单片机定时中断 PWM问题

  [复制链接]
ID:417092 发表于 2019-4-29 01:34 | 显示全部楼层 |阅读模式
51单片机,定时中断写PWM。
占空比,过小或过大时,
单片机速度达不到。
使用大晶振,可以提高一些单片机的速度。
但同时,又降低了定时器的定时范围。。。

好矛盾呀。。。。
这个问题大家如何解决呀。

回复

使用道具 举报

ID:123289 发表于 2019-4-29 08:09 | 显示全部楼层
“但同时,又降低了定时器的定时范围。。。”
太容易解决了,一个计数器的事,再想想!
回复

使用道具 举报

ID:164602 发表于 2019-4-29 08:16 | 显示全部楼层
换用高级一点的51单片机,如STC15系列的,不仅速度快,而且自带PWM,完全够用。
缺点是程序要修改一下,甚至要先学习一下这种单片机。
回复

使用道具 举报

ID:462827 发表于 2019-4-29 08:19 | 显示全部楼层
你想要多少的频率、占空比?
回复

使用道具 举报

ID:158375 发表于 2019-4-29 08:41 | 显示全部楼层
增加晶振的频率,提高CPU速度。
定时会是问题吗?增加计数范围即可。
回复

使用道具 举报

ID:417092 发表于 2019-4-29 10:51 | 显示全部楼层
yzwzfyz 发表于 2019-4-29 08:09
“但同时,又降低了定时器的定时范围。。。”
太容易解决了,一个计数器的事,再想想!

没有思路。
回复

使用道具 举报

ID:357633 发表于 2019-4-29 11:53 | 显示全部楼层
temp++; if(temp==4){                 temp = 0;                 VarCount ++;  //渐变计时                 KLPCount++;         //开关机计时                 VibCount++;         //振动计时                 PhoCount++;         //光敏计时         }
回复

使用道具 举报

ID:357633 发表于 2019-4-29 11:55 | 显示全部楼层
中断里这样可以实现长时间计时 temp++; if(temp==4) { temp = 0;         Count ++;  }  0.1ms*4=4ms
回复

使用道具 举报

ID:518788 发表于 2019-4-29 18:01 | 显示全部楼层
可以用stm32那里面有现成的波形
回复

使用道具 举报

ID:401700 发表于 2019-4-30 00:39 | 显示全部楼层
定时器有问题
回复

使用道具 举报

ID:417092 发表于 2019-4-30 00:57 | 显示全部楼层
cy002 发表于 2019-4-29 11:55
中断里这样可以实现长时间计时 temp++; if(temp==4) { temp = 0;         Count ++;  }  0.1ms*4=4ms

使用这样的方法。差会多大呀。
我不使用计数数,
误差就有120%。。。
看一下,52单片机的多慢吧。。。
PWM误差有多大吧。
33M  12分频
如果PWM频率166.66 KHz 时哪么一个
一个PWM周期 约6uS.
把高低电平都设置成 3uS.




52单片机的误差太大了吧。
设置的周期为6uS, 实际周期到了 13----14uS了
怎么会这么大的误差呀。。。
回复

使用道具 举报

ID:357633 发表于 2019-5-2 19:26 | 显示全部楼层
ZMRGHY 发表于 2019-4-30 00:57
使用这样的方法。差会多大呀。
我不使用计数数,
误差就有120%。。。

12T的话,一个指令周期0.363636。。。us, 你6us也就16个周期,能干啥事,单片机除了一直在中断中断中断。。。其他啥事都干不了,
回复

使用道具 举报

ID:472242 发表于 2019-5-2 19:54 | 显示全部楼层
你有多大的值达不到?
在定时中定义一个变量cont, 定时一次加一次,cont++,如果还不够再定义一个变量pk,  if(cont==200)cont = 0,pk++;.........如此下去,你要定一万年也不难
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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