智能车制作
标题:
舵机能够是每20ms控制一次么?
[打印本页]
作者:
fangyangfly
时间:
2011-7-2 23:34
标题:
舵机能够是每20ms控制一次么?
我的程序执行大约1ms,每次执行都会给单片机输出舵机控制。而舵机的PWM控制周期是20ms。如果我每隔1ms给舵机不同占空比PWM波的话,会出错么?
还有我舵机静止的情况下一直在抖动。怎么办。
作者:
1106161071
时间:
2011-7-3 23:27
电磁专用舵机300HZ 的 哪来的20ms?
作者:
1106161071
时间:
2011-7-3 23:28
安工大的你可以直接回家啦。。。
作者:
fuzi2008
时间:
2011-7-4 18:18
数字舵机听说可以使用500Hz
作者:
竹叶
时间:
2013-3-30 09:06
1106161071 发表于 2011-7-3 23:27
电磁专用舵机300HZ 的 哪来的20ms?
我的舵机 使用的 20ms的,是3010,现在给他脉冲 左转右转都没问题,AD采集值没问题,然后写了个简单的控向程序,但是不好用,大神帮忙看看吧
void Duo_zhuanwan()
{
int p1,m ;
m= (ad_value_0 - ad_value_1)/(ad_value_0 + ad_value_1);
if(m<=1||m>=-1) /* 1500时 90度 中间 AD采集数 120*/
{
p1=1500-(m*400);
pwm2_init(p1);
}
} /*___占空比____*/
这是AD部分
void Init_AD_more(void)
{
ATD0CTL1 = 0x00; //选用8位模数转换
ATD0CTL2 = 0X40; //启动A/D转换,快速清零,禁止中断
//delay_atd(); //延时
ATD0CTL3 = 0Xa0; //10100000 转换序列长度为4 右对齐
ATD0CTL4 = 0x07; //AD模块时钟频率为2MHz fA=fBUS/(PRS+1)/2 24周期采集
ATD0CTL5 = 0X30; //多通道,连续转换,起始通道AD0 AD1,AD2,AD3,因为 0011 转换一次
ATD0DIEN = 0X00; // 禁止数字输入■ 8
}
/*______________________________AD 0---1 口 数据_____________________________________*/
void AD_get_more(void)
{
while(!ATD0STAT2_CCF0);
{
PORTA_PA0=1;
ad_value_0=ATD0DR0;
}
while(!ATD0STAT2_CCF1);
{
PORTA_PA1=1;
ad_value_1=ATD0DR1;
}
}
作者:
447200632
时间:
2013-3-30 11:45
可以20毫秒控制一次。可以将AD的值的获取放在定时中断里面,获取太快容易造成车身抖动,几十毫秒你的车子也就走两三厘米
作者:
nielili
时间:
2013-3-30 13:15
单步调试,看数据试试
作者:
石头龙
时间:
2016-7-7 01:43
:lol:lol:lol:lol:lol
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2