智能车制作

标题: 舵机程序是否有错,求指教! [打印本页]

作者: guoshunkai521    时间: 2013-4-3 08:41
标题: 舵机程序是否有错,求指教!
#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;   
作者: guoshunkai521    时间: 2013-4-3 08:46
我给S3010供电6V多,舵机总是偏转到最大角度,还有继续转的趋势,当给定值设小的时候却反方向转到最大角度,整个舵机不停控制,希望大家帮我看下这个信号是否出问题,或者可以提供思路解决一下!
作者: 270136977    时间: 2013-4-3 09:23
3010舵机控制频率50hz,高电平时间0.5到2.5ms范围内,不然肯定打死
作者: guoshunkai521    时间: 2013-4-3 10:00
270136977 发表于 2013-4-3 09:23
3010舵机控制频率50hz,高电平时间0.5到2.5ms范围内,不然肯定打死

我算了好多遍,认为频率我没算错!给定值1500,给的是1.5MS.

作者: 天秤星座    时间: 2013-4-3 10:04
guoshunkai521 发表于 2013-4-3 10:00
我算了好多遍,认为频率我没算错!给定值1500,给的是1.5MS.

可以确定舵机在安装的时候已经居中了吗
作者: guoshunkai521    时间: 2013-4-3 10:23
天秤星座 发表于 2013-4-3 10:04
可以确定舵机在安装的时候已经居中了吗

舵机没有撞上去,我在找那个位置!它停在了最偏的位置!

作者: guoshunkai521    时间: 2013-4-3 11:18
270136977 发表于 2013-4-3 09:23
3010舵机控制频率50hz,高电平时间0.5到2.5ms范围内,不然肯定打死

电源驱动能力不够,解决了!
作者: 270136977    时间: 2013-4-3 12:44
guoshunkai521 发表于 2013-4-3 11:18
电源驱动能力不够,解决了!

额,按说6v没问题呀。。。

作者: exiao    时间: 2013-4-3 13:06
学习了。这和电源什么关系?没懂
作者: guoshunkai521    时间: 2013-4-3 21:21
exiao 发表于 2013-4-3 13:06
学习了。这和电源什么关系?没懂

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

作者: guoshunkai521    时间: 2013-4-3 21:23
270136977 发表于 2013-4-3 12:44
额,按说6v没问题呀。。。

是没问题,关键是2596的一个电容接错位置了,测电压6V却不能供给!
作者: guoshunkai521    时间: 2013-4-3 21:28
270136977 发表于 2013-4-3 12:44
额,按说6v没问题呀。。。

2596的一个电容接错了,电压表可以测到6V,其实这个6V电b不能用……
作者: exiao    时间: 2013-4-3 22:09
guoshunkai521 发表于 2013-4-3 21:21
电源线有一个电容接错位置了,使得供电不正常,舵机不能正常工作!

原来如此,谢谢了





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2