跨届大侠
  
- 积分
- 6502
- 威望
- 4814
- 贡献
- 652
- 兑换币
- 1264
- 注册时间
- 2014-3-19
- 在线时间
- 518 小时
|
本帖最后由 abacrya、军 于 2015-5-1 17:36 编辑
现在的问题就是。。。把程序改了之后。但是控制周期不变的情况下。。。出弯乱晃,,,减小P值直接过不了弯,,,而且采集CCD的图像发送到上位机,,会看到跳动,,曝光时间不同引起的跳动
void pit0_incident(void)
{
time_2++;
time_10++;
time_20++;
/**每2MS进行姿态控制**/
if(time_2>2)
{
time_2=1;
balance_pwm=balance_control(0);
}
L_PWM=balance_pwm;
R_PWM=balance_pwm;
switch(time_10)
{
/**1MS进行CCD复位,曝光时间=采集时间-复位时间**/
case 2:
{
ccd_restet(2);
break;
}
/**2MS进行CCD复位,曝光时间=采集时间-复位时间**/
case 3:
{
ccd_restet(1);
break;
}
/**7MS进行CCD采集**/
case 8:
{
ccd_gather(ccd2_daat,2);
//uart_putstr (UART0,ccd1_daat);
break;
}
/**8MS进行CCD采集**/
case 9:
{
ccd_gather(ccd1_daat,1);
//uart_putstr (UART0,ccd1_daat);
break;
}
/**9MS进行CCD数据处理**/
case 10:
{
zz= ccd_data_dispose(ccd1_daat,80);
//ccd_data_dispose(ccd2_daat,80);
break;
}
/**10MS进行方向控制**/
case 11:
{
time_10=1;
angle_control(zz);
//VisualScope_Output(zz,i/100,0,0);
break;
}
}
/*每20MS进行速度控制*/
if(time_20>20)
{
time_20=1;
speed_control(sudu);
//speed_sign=1;
if(beep_time)
{
beep_time++;
if(beep_time>5)
{
beep_time=0;
beep=1;
}
}
}
//进行速度控制后加上速度控制PWM值
speed_pwm=speed_smoothness_out(time_20);
L_PWM-=speed_pwm;
R_PWM-=speed_pwm;
//进行角度控制后加上角度控制PWM值
angle_pwm=angle_smoothness_out(time_10);
L_PWM+=angle_pwm;
R_PWM-=angle_pwm;
//VisualScope_Output(L_PWM,R_PWM,speed_pwm,angle_pwm);
L_motor_pwm(L_PWM);
R_motor_pwm(R_PWM);
/************************************************/
PIT_Flag_Clear(PIT0); //清除中断标志位
}
|
|