PWM波控制舵机 为什么舵机不转动

#include<hidef.h>/*commondefinesandmacros*/#include"derivative.h"/*derivative-specifi... #include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
float i;

void PWM_init() {
PWME=0x00; //禁止PWM输出

PWMCTL=0x00; //通道独立不级联,Wait,Freeze模式下继续
PWMPOL_PPOL0=1;
PWMCAE=0x00; //左对齐输出方式

PWMCLK=0xff; //使用ClockSA时钟

PWMPRCLK=0x33; //ClockA时钟为总线时钟8分频,=2MHz/8=250khz
PWMSCLA=50; //ClockSA=ClockA/(2*PWMSCLA)=250KHz/(2*50)=2.5khz

PWMPER0=200;
PWMDTY0=3.75;

}
void main(void) {
/* put your own code here */
DisableInterrupts;
PWM_init();
PWME=0x01; //使能通道0的PWM输出

for(;;) {
_FEED_COP(); /* feeds the dog */
} /* loop forever */
/* please make sure that you never leave main */
}
展开
 我来答
萍艳卉3175
2017-12-10 · TA获得超过1837个赞
知道小有建树答主
回答量:1443
采纳率:81%
帮助的人:98.6万
展开全部
舵机的控制信号为周期是20ms的脉宽调制(PWM)信号,其中脉冲宽度从0.5ms-2.5ms,相对应舵盘的位置为0-180度,呈线性变化。也就是说,给它提供一定的脉宽,它的输出轴就会保持在一个相对应的角度上,无论外界转矩怎样改变,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应的位置上。
舵机的原理和控制 如下:
舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分,总间隔为2ms。以180度角度伺服为例,那么对应的控制关系是这样的:
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;
追问
我输出的脉冲也是20ms周期 高电平在0.5~2.5ms之间为什么舵机没反应?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式