OpenEdv-开源电子网

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

利用51单片机定时器输出PWM,有问题,很简单的一个小程序,却怎么调都不对,求大家帮帮忙。

[复制链接]

8

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
157
金钱
157
注册时间
2014-5-15
在线时间
8 小时
发表于 2014-12-24 16:43:36 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]/*简单的MG996R舵机51测试程序*/ #include<reg52.h> #define uint unsigned int #define uchar unsigned char sbit PWM1=P2^0; uchar tcnt; void main() { TMOD=0X01; TH0=(65536-100)/256; //每0.1ms进一次中断    TL0=(65536-100)%256; EA=1; ET0=1; TR0=1; PWM1=0; while(1); } void timer() interrupt 1 //定时器计时0.1ms,即模拟PWM是以0.1ms为分度, { tcnt++; TR0=0; TH0=(65536-100)/256; //每0.1ms进一次中断 TL0=(65536-100)%256; if(tcnt==15) //高电平持续时间 PWM1=0; if(tcnt==200) { PWM1=1; tcnt=0; } TR0=1; }[/mw_shl_code]

最佳答案

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

把中断时间改大,0.1ms太小了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

27

主题

774

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1473
金钱
1473
注册时间
2013-4-12
在线时间
77 小时
发表于 2014-12-24 16:43:37 | 显示全部楼层
把中断时间改大,0.1ms太小了
简单是多么的快乐,而快乐就因你而简单!微芯动力LTKKS
回复

使用道具 举报

8

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
157
金钱
157
注册时间
2014-5-15
在线时间
8 小时
 楼主| 发表于 2014-12-24 16:45:33 | 显示全部楼层
代码很简单,PWM周期为20ms,高电平时间为15ms,但是用示波器看,却是25ms周期,高电平18ms左右,就是感觉1.25倍的关系,不知道为什么样。
回复

使用道具 举报

16

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1292
金钱
1292
注册时间
2014-12-20
在线时间
534 小时
发表于 2014-12-24 18:18:00 | 显示全部楼层
进入中断,你不关定时器看看呢。可能你进入中断,关了定时器,执行那后面的代码,再开启定时器,这个需要时间,延长了电平保持时间。
回复

使用道具 举报

17

主题

168

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2014-4-12
在线时间
0 小时
发表于 2014-12-24 20:03:23 | 显示全部楼层
用自动重装试试。CPU响应中断,执行都需要时间。
规格严格,功夫到家
回复

使用道具 举报

8

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
157
金钱
157
注册时间
2014-5-15
在线时间
8 小时
 楼主| 发表于 2014-12-25 17:33:44 | 显示全部楼层
回复【3楼】LTKKS:
---------------------------------
是这个原因,可是执行中断里的这几个语句会长达十几微妙吗?51不会这么水吧。。
回复

使用道具 举报

8

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
157
金钱
157
注册时间
2014-5-15
在线时间
8 小时
 楼主| 发表于 2014-12-25 20:20:54 | 显示全部楼层
回复【5楼】FMX_2011:
---------------------------------
但是这样的话最多只能定时256us了,之后我还要控制8路舵机,自动装载模式的定时时间不够。。
回复

使用道具 举报

8

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
157
金钱
157
注册时间
2014-5-15
在线时间
8 小时
 楼主| 发表于 2014-12-25 20:21:25 | 显示全部楼层
回复【4楼】BMN李:
---------------------------------
试了一下,误差还是挺大的。。
回复

使用道具 举报

aqc112420 该用户已被删除
发表于 2017-2-25 14:48:59 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 22:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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