打印

430中开根号和除法出大问题

[复制链接]
2494|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
G21372|  楼主 | 2014-5-30 20:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AC, DAC, se, AD, dc
msp430 ADC12进行双通道重复采样,采用定时器中断采样,然后对采样数据进行处理,DAC0832输出,我试验了 ADC采样和DAC输出,两者可以,对采样的波形可以误差很小的DAC复原,

然后问题来了,我将采样数据x和y进行一些算法的处理,输出波形完全乱了。(图3)只添加下面的语句
  其中k1 k2 k3 是系数,x y是双通道采样值,sqrt是math.h中的函数

    Fx=(-k1*y) -(k2*d_x);
    if(Fx>0)  { Ix=(int)sqrt(Fx*x*x/k3);}
      else   { Ix=(int)sqrt(-Fx*x*x/k3);}


情况1当没有   if(Fx>0)  { Ix=(int)sqrt(Fx*x*x/k3);}
                      else   { Ix=(int)sqrt(-Fx*x*x/k3);}
          输出的x y波形如图1,波形很好,也很稳定;
情况2 然后我把sqrt去掉 if(Fx>0)  { Ix=(int)(Fx*x*x/k3);}
                                       else   { Ix=(int(-Fx*x*x/k3);}
      输出的x y波形波形如图2,波形开始震荡,不稳定;
情况3 然后我把除法和开根号都去掉 if(Fx>0)  { Ix=(int)(Fx*x*;}
                                                        else   { Ix=(int(-Fx*x*x);}
      输出的x y波形波形如图1了,很好很稳定
分析其原因,我觉得是msp430 单片机对 除法和开根号没有办法处理,导致程序跑偏了。(我输入的是两路直流电,测的是DAC0832两路输出)

相关帖子

沙发
G21372|  楼主 | 2014-5-30 20:50 | 只看该作者
不知道各位怎么看次问题,如何在430中实现开根号和复杂些的数**算。

使用特权

评论回复
板凳
ar_m_cu| | 2014-5-30 22:04 | 只看该作者
没有看到图片

使用特权

评论回复
地板
kekeke| | 2014-5-31 08:31 | 只看该作者
溢出了,最好不要用库。。自己写

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

197

主题

1658

帖子

5

粉丝