智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 8788|回复: 14
打印 上一主题 下一主题

[咨询] 电磁组两个电感的算法

  [复制链接]

12

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
292
威望
180
贡献
58
兑换币
86
注册时间
2013-1-9
在线时间
27 小时
跳转到指定楼层
1#
发表于 2013-4-12 18:59:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//方向控制
   uint16 ADValue0,ADValue1;  //      1    主程序使用的变量定义     
  float Direction_diff=0.0,Direction_sub=0.0,Direction_add=0.0;
  float Direction_sub_value=0.0,Direction_sub_old=0.0;
  float DirectionOutold=0.0,DirectionOutnew=0.0;
  void DirectionControl(void)
   {


      Direction_sub=(float)ADValue0-(float)ADValue1;
      Direction_add=(float)ADValue0+(float)ADValue1;
      Direction_diff=Direction_sub/Direction_add;
      Direction_sub_value=Direction_sub-Direction_sub_old;
      Direction_sub_old=Direction_sub;
      DirectionOutold=DirectionOutnew;
      DirectionOutnew=1100+K_Direction_P*Direction_diff+K_Direction_D*Direction_sub_value;

   }
大神帮我看看程序哪错了啊,大弯道正向能跑过去反向跑不过去

13

主题

120

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1967
威望
1020
贡献
445
兑换币
223
注册时间
2012-3-6
在线时间
251 小时
毕业学校
华侨大学
2#
发表于 2013-4-12 20:07:23 | 只看该作者
你这程序看着真晕,给哪整来的???是PID吗??
回复 支持 反对

使用道具 举报

5

主题

254

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4396
威望
2189
贡献
1023
兑换币
959
注册时间
2012-2-25
在线时间
592 小时
3#
发表于 2013-4-12 21:37:30 | 只看该作者
这不是第七届参考方案吗
回复 支持 反对

使用道具 举报

28

主题

1169

帖子

0

精华

常驻嘉宾

如来佛

Rank: 8Rank: 8

积分
3960

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

QQ
威望
2706
贡献
150
兑换币
127
注册时间
2012-10-23
在线时间
552 小时
4#
发表于 2013-4-12 23:50:07 | 只看该作者
不懂呀:(
回复 支持 反对

使用道具 举报

13

主题

53

帖子

0

精华

高级会员

Rank: 4

积分
548
威望
280
贡献
114
兑换币
156
注册时间
2013-4-12
在线时间
77 小时
毕业学校
绥化学院
5#
发表于 2013-4-13 21:07:36 | 只看该作者
做差的时候不管大小,只会出负值,不信你看看 所以只能往一个方向转 似乎if也不好使
回复 支持 反对

使用道具 举报

6

主题

89

帖子

0

精华

高级会员

Rank: 4

积分
792
威望
404
贡献
232
兑换币
252
注册时间
2013-3-13
在线时间
78 小时
6#
发表于 2013-4-14 00:24:26 | 只看该作者
对呀。我的也是只打一边角。另一边不打角。好像一边采集的值永远大于另一边的值。求解!
回复 支持 反对

使用道具 举报

13

主题

53

帖子

0

精华

高级会员

Rank: 4

积分
548
威望
280
贡献
114
兑换币
156
注册时间
2013-4-12
在线时间
77 小时
毕业学校
绥化学院
7#
发表于 2013-4-14 08:57:19 | 只看该作者
有个方法 可以自己写个减法函数 但是不能出现减号
回复 支持 反对

使用道具 举报

6

主题

89

帖子

0

精华

高级会员

Rank: 4

积分
792
威望
404
贡献
232
兑换币
252
注册时间
2013-3-13
在线时间
78 小时
8#
发表于 2013-4-14 12:04:49 | 只看该作者
void AD_Init(){     //AD初始化

ATD0CTL1=0X00;   
ATD0CTL2=0XC2;   
ATD0CTL3=0X10;   
ATD0CTL4=0X6F;   
ATD0CTL5=0X30;     
ATD0DIEN=0X00;    //禁止数字输入

}
void interrupt 22 ADT0()
{
  DisableInterrupts;
  AD_ls0+=ATD0DR0L;
  AD_ls1+=ATD0DR1L;
  AD_cnt++;
  if (AD_cnt==8)
  {   AD_flag=1;
               
     AD_cy0=AD_ls0>>3;   //四次
     AD_cy1=AD_ls1>>3;
    AD_ls0=0;
    AD_ls1=0;
    AD_cnt=0;
   
       
       
     ad_djg();
          AD_flag=0;
  }
  EnableInterrupts;
}
请问上面的AD程序应该每进一次中断就能采到0,和1通道的模拟量的转换结果吧?
回复 支持 反对

使用道具 举报

13

主题

53

帖子

0

精华

高级会员

Rank: 4

积分
548
威望
280
贡献
114
兑换币
156
注册时间
2013-4-12
在线时间
77 小时
毕业学校
绥化学院
9#
发表于 2013-4-14 14:57:40 | 只看该作者
不是吧 没转换完读走数据你说会怎么样
回复 支持 反对

使用道具 举报

13

主题

53

帖子

0

精华

高级会员

Rank: 4

积分
548
威望
280
贡献
114
兑换币
156
注册时间
2013-4-12
在线时间
77 小时
毕业学校
绥化学院
10#
发表于 2013-4-14 14:58:19 | 只看该作者
我想看看楼主剩下的程序
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-7 21:13 , Processed in 0.050846 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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