智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3484|回复: 3
打印 上一主题 下一主题

请问PWMDTY只能在PWME置1前设置吗?

[复制链接]

9

主题

73

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
423
威望
326
贡献
23
兑换币
0
注册时间
2010-1-7
在线时间
37 小时
跳转到指定楼层
1#
发表于 2010-1-8 21:18:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
像下面这样将初始化定义为一个子程序,然后在main函数里调用它后再设置PWMDTY就无法实现吗?
程序跑的时候舵机总是会偏向最右,PWMDTY的数值设置时没错的,放在PWME前就可以实现,在后面就不行了,有人可以给我分析一下吗?

void pwminitial()//PWM初始化,通道01,23控制电机,通道45控制舵机
{             
  PWMPOL=0x2A;//通道01,23,45输出波形开始极性为1
  PWMCAE=0x00;//左对齐输出模式   
  PWMCTL=0x70;//通道01,23,45级联
  PWMCLK=0x20;//通道45选择SA为时钟源   
  PWMSCLA=0x04;//通道45时钟SA为3MHz(24/(2*4))
        
  PWMPER01=6000;//设定通道01输出频率(4kHz)
  PWMPER23=6000;//设定通道23输出频率(4kHz)
  
  PWMPER45=60000;//设定通道45输出频率(50Hz)
  PWME=0x2A;//通道01,23使能
}

21

主题

1019

帖子

0

精华

常驻嘉宾

我爱雯婕

Rank: 8Rank: 8

积分
4657
威望
2223
贡献
1682
兑换币
4
注册时间
2009-3-4
在线时间
376 小时
2#
发表于 2010-1-9 00:52:08 | 只看该作者
本帖最后由 chenrunshe_007 于 2010-1-9 01:09 编辑

回复 1# papa2009
完全可以的。
你说"PWMDTY的数值设置时没错的",怎么知道没错,写出来让我们分析一下么。舵机打向最左或者最右有两种情况:
1.PWM的占空比设错了,肯定超过了范围
2.舵机坏了
如果没示波器的话你可以在单步运行时查看一下PWM里面负责计数的寄存器的值和PWM输出脚电平的变化情况,看看超过舵机承受的范围没有。如果真是如你所说PWMDTY换了个位置就不行了那真是诡异了。
回复 支持 反对

使用道具 举报

9

主题

73

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
423
威望
326
贡献
23
兑换币
0
注册时间
2010-1-7
在线时间
37 小时
3#
 楼主| 发表于 2010-1-9 11:45:43 | 只看该作者
回复 2# chenrunshe_007


    我试过在上面的子程序里为PWMDTY赋值,而main函数里不去改动它,那它就可以转动我然一想要的角度了,所以这个应该是没问题的,舵机也没事……
程序里我可以给通道01和23改变PWMDTY,但是45的就不行了……
对了,每次改完PWMDTY后好像循环一次回来又会变回它们的初始值……不知道是不是硬件的问题
回复 支持 反对

使用道具 举报

6

主题

50

帖子

0

精华

金牌会员

king

Rank: 6Rank: 6

积分
1715
威望
289
贡献
1362
兑换币
0
注册时间
2010-12-31
在线时间
32 小时
4#
发表于 2011-3-19 21:48:18 | 只看该作者
我的也是这样的问题,请问是怎么解决的,我已经调了快两天了
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-26 13:02 , Processed in 0.343826 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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