智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2574|回复: 12
打印 上一主题 下一主题

[电磁] 舵机程序是否有错,求指教!

[复制链接]

8

主题

130

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1030
QQ
威望
637
贡献
259
兑换币
100
注册时间
2012-2-14
在线时间
67 小时
毕业学校
南阳理工学院
跳转到指定楼层
1#
发表于 2013-4-3 08:41:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */


void PLLinit(void)
{
    CLKSEL = 0x00;                            //电路使用外部晶振
    PLLCTL_PLLON = 1;                    //锁相环电路禁止           
    SYNR =  0x00|0x04;                     //设置时钟频率
    REFDV= 0x01|0x03;                    //时钟频率设置为40M,总线频率为20M
    PLLCTL_PLLON = 1;                   //锁相环电路允许
    while(CRGFLG_LOCK == 0);     //等待锁相环运行稳定
     CLKSEL_PLLSEL = 1;               //使用锁相环时钟,总线频率为锁相环设定的频率
}


void  PWM_init(int str)
{
   
    PWME_PWME5 = 0;
    PWME_PWME5 = 0;              //禁止PWM输出
    PWMCTL_CON45 = 1;          //使用级联,通道45级联
    PWMPOL = 0xff;                    //电平输出设置,先输出高电平
    PWMCLK_PCLK5 = 1;           //设置PWM5使用SA作为时钟源
    PWMPRCLK = 0x00;             //ClockA的预分频因子,这里使用总线时钟
    PWMCAE_CAE5 = 0;           //PWM输出对其方式,设置为左对齐输出
    PWMSCLB = 10;                   //Clock SA的分频因子为PWMSCLA*2
    PWMPER45 = 20000;           //通道周期设定,最终得到50HZ的时钟源
    PWMDTY45 = str;                 //占空比设定
    PWME_PWME5 = 1;            //使能PWM输出
}   


void main(void)
{
   PLLinit();
   PWM_init(1500);
   for(;;)
    {
      EnableInterrupts;
    }
}



补充内容 (2013-4-3 21:26):
程序中有个错误,   PWMSCLB = 10;   改为   PWMSCLA = 10;   

8

主题

130

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1030
QQ
威望
637
贡献
259
兑换币
100
注册时间
2012-2-14
在线时间
67 小时
毕业学校
南阳理工学院
2#
 楼主| 发表于 2013-4-3 08:46:59 | 只看该作者
我给S3010供电6V多,舵机总是偏转到最大角度,还有继续转的趋势,当给定值设小的时候却反方向转到最大角度,整个舵机不停控制,希望大家帮我看下这个信号是否出问题,或者可以提供思路解决一下!
回复 支持 反对

使用道具 举报

15

主题

277

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6479

论坛元老奖章活跃会员奖章

QQ
威望
1282
贡献
4791
兑换币
495
注册时间
2011-10-10
在线时间
203 小时
3#
发表于 2013-4-3 09:23:39 | 只看该作者
3010舵机控制频率50hz,高电平时间0.5到2.5ms范围内,不然肯定打死
回复 支持 反对

使用道具 举报

8

主题

130

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1030
QQ
威望
637
贡献
259
兑换币
100
注册时间
2012-2-14
在线时间
67 小时
毕业学校
南阳理工学院
4#
 楼主| 发表于 2013-4-3 10:00:07 | 只看该作者
270136977 发表于 2013-4-3 09:23
3010舵机控制频率50hz,高电平时间0.5到2.5ms范围内,不然肯定打死

我算了好多遍,认为频率我没算错!给定值1500,给的是1.5MS.
回复 支持 反对

使用道具 举报

10

主题

455

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6364
QQ
威望
3231
贡献
1725
兑换币
495
注册时间
2011-3-12
在线时间
704 小时
5#
发表于 2013-4-3 10:04:49 | 只看该作者
guoshunkai521 发表于 2013-4-3 10:00
我算了好多遍,认为频率我没算错!给定值1500,给的是1.5MS.

可以确定舵机在安装的时候已经居中了吗
回复 支持 反对

使用道具 举报

8

主题

130

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1030
QQ
威望
637
贡献
259
兑换币
100
注册时间
2012-2-14
在线时间
67 小时
毕业学校
南阳理工学院
6#
 楼主| 发表于 2013-4-3 10:23:43 | 只看该作者
天秤星座 发表于 2013-4-3 10:04
可以确定舵机在安装的时候已经居中了吗

舵机没有撞上去,我在找那个位置!它停在了最偏的位置!
回复 支持 反对

使用道具 举报

8

主题

130

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1030
QQ
威望
637
贡献
259
兑换币
100
注册时间
2012-2-14
在线时间
67 小时
毕业学校
南阳理工学院
7#
 楼主| 发表于 2013-4-3 11:18:48 | 只看该作者
270136977 发表于 2013-4-3 09:23
3010舵机控制频率50hz,高电平时间0.5到2.5ms范围内,不然肯定打死

电源驱动能力不够,解决了!
回复 支持 反对

使用道具 举报

15

主题

277

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6479

论坛元老奖章活跃会员奖章

QQ
威望
1282
贡献
4791
兑换币
495
注册时间
2011-10-10
在线时间
203 小时
8#
发表于 2013-4-3 12:44:50 | 只看该作者
guoshunkai521 发表于 2013-4-3 11:18
电源驱动能力不够,解决了!

额,按说6v没问题呀。。。
回复 支持 反对

使用道具 举报

1

主题

2067

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5124

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

威望
2752
贡献
898
兑换币
59
注册时间
2012-12-8
在线时间
737 小时
9#
发表于 2013-4-3 13:06:30 | 只看该作者
学习了。这和电源什么关系?没懂
回复 支持 反对

使用道具 举报

8

主题

130

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1030
QQ
威望
637
贡献
259
兑换币
100
注册时间
2012-2-14
在线时间
67 小时
毕业学校
南阳理工学院
10#
 楼主| 发表于 2013-4-3 21:21:53 | 只看该作者
exiao 发表于 2013-4-3 13:06
学习了。这和电源什么关系?没懂

电源线有一个电容接错位置了,使得供电不正常,舵机不能正常工作!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 18:32 , Processed in 0.047431 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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