打印

430乘法运算错误

[复制链接]
406|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
尤彼卡|  楼主 | 2016-4-27 20:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

while(1)
{     
  // if(a==0XFF)        //显示对应频率ad值
   //{   

   //     if(f1==0)         //直流电压
   //     {
  //          i=f1;
           // LEDA(sqrt(data[i].real*data[i].real+data[i].imag*data[i].imag)/64);
  //      }
      //  else
     //   {
         //   i=f1/8;    //(1024/NUM); //对应频率的ad,有1024/NUM=8的误差
            max=0;
            for(i=0;i<NUM/2;i++)
            {

          x[i].real=0.2;
          x[i].imag=0;
             // result[i]= ((x[i].real)*(x[i].real)+(x[i].imag)*(x[i].imag))*1.0f;
          temp=3.6;
          result[i]=(3.6*3.6);
              if(max<(result[i]))
              {
                max=result[i];
                index=i;

              }
            }

           index=(int)(max*100);

            LEDA((index));


result[i]=(3.6*3.6);这个等式这样没有问题,但是这样写result[i]=(temp*3.6);结果就是错误,一直是4左右,可能是哪方面的问题

相关帖子

沙发
lefeng| | 2016-4-27 21:05 | 只看该作者
几个类型统一成float看看

使用特权

评论回复
板凳
豆腐块| | 2016-4-27 21:26 | 只看该作者
觉得是不是溢出了,或者是没转换数据类型就直接赋值/运算了?

使用特权

评论回复
地板
Ryze| | 2016-4-27 21:48 | 只看该作者
会不会是数据类型的问题

使用特权

评论回复
5
vivilzb1985| | 2016-4-27 22:52 | 只看该作者
这个需要看数据的类型的,还有你的结果的看下数据的范围的,不要超过数据来性的最大范围定义的

使用特权

评论回复
6
1988020566| | 2016-4-29 22:48 | 只看该作者
你的变量类型对不对呢?

使用特权

评论回复
7
1988020566| | 2016-4-29 22:49 | 只看该作者
没哟统一变量,最好强制转换一下的。

使用特权

评论回复
8
cemaj| | 2016-4-30 00:04 | 只看该作者
单步仿真试试看的。

使用特权

评论回复
9
cemaj| | 2016-4-30 00:05 | 只看该作者
肯定是你的参数存在什么问题的

使用特权

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

本版积分规则

116

主题

774

帖子

1

粉丝