智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1585|回复: 1
打印 上一主题 下一主题

这里是不是用static来计数了?不能领悟啊

[复制链接]

25

主题

761

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5905

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

威望
1946
贡献
3251
兑换币
809
注册时间
2012-2-7
在线时间
354 小时
跳转到指定楼层
1#
发表于 2012-3-26 19:48:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void Motor_Regler(void)
{
   
  volatile float power_value = 0.0,error_value = 0.0,gyro_value = 0.0;


  static unsigned char FB_Flag = 0,Front_Count = 0,Behind_Count = 0;    //???这我想不灵清啊,static后面会用来计数的?
  error_value = QingJiao/57.3;  //用弧度制
  gyro_value  = Gyro_Data;
  ////倾角检测
// OutData[3]=error_value;
   
  Integral += error_value;
  Different = Error1_Old - Error2_Old;
  Error2_Old = Error1_Old;
  
  Error1_Old = error_value;
// OutData[0] = (float)D_Value*Different;   
  power_value =  fabs((float)P_Value*error_value + (float)I_Value*Integral + (float)D_Value*Different);//PID
  
  OutData[3]=power_value;
         
  if(power_value < -ADJ_Value)   power_value = -ADJ_Value;
  if(power_value > ADJ_Value)    power_value = ADJ_Value;
  //power_value=0.3*power_value*power_value+Min_Power;
if(error_value>0)     //正向倾角判断 正向调节角度 0~Pi/12.0
{
   
  Front_Count = 0;
  Behind_Count++;

if(5==Behind_Count)                     //连续5次检测为正向倾角时标志位置位,
  {
   Behind_Count = 0;
   FB_Flag = 8;
  }
这段程序我想不明白 ,他在函数中定义static变量FB_Flag = 0,Front_Count = 0,Behind_Count = 0;后面却用来计数?难道static可以多次赋值?求高手解释,谢过!!

25

主题

761

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5905

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

威望
1946
贡献
3251
兑换币
809
注册时间
2012-2-7
在线时间
354 小时
2#
 楼主| 发表于 2012-3-27 12:11:32 | 只看该作者
dingqi,zijiding
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 07:04 , Processed in 0.434238 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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