微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求解!mc9s12xs128用1602显示浮点数程序!

求解!mc9s12xs128用1602显示浮点数程序!

时间:10-02 整理:3721RD 点击:
void showf(float out)
{
     char i,n=0;
   
     long int out4,out1,outshuzu[4];     
     float out3;
     out1=out/1;                //取整数部分
     out3=out-out1;             //取小数部分
     if(out1==0)
     {
        write_com(0x80+0x40);
        write_data(0x30);            
     }
     else
     {
        while(out1!=0)
          {
              outshuzu[n++]=out1%10;
              out1=out1/10;       
          }
         write_com(0x80+0x40);
         for(i=n;i>0;i--)
         {
              write_data(0x30+outshuzu[i-1]);        //写整数部分
              outshuzu[i-1]=0;       
         }  
    }
      if(out3>0)
      {
              n=0;
              write_data(0x2e);        //写小数点
              while(n<3)         
              {
                  out4=out3*10;
                  out3=out3*10;
                  outshuzu[n]=out4%10;
                  write_data(0x30+outshuzu[n]);            //写小数部分
                  outshuzu[n]=0;
                  n++;
              }
             
       }
}   

调用showf()后  编译后怎么会出现5个未定义错误:如symbol_FSFLOAT。symbol_FSUB...和一个sp debug info incorrent because of optimization or inline  assembler  警告,注释掉这一部分就程序没问题了。真心不解,求大神们指点!

     out3=out-out1;             //取小数部分
写成这样,out3=out;
               out3-=out1;

还是不行呢。

看看是不是float问题,有写编译器不带有float的字函数,有时候编译会出错。

不是呢..纠结死了!

问题已经解决了。

小编是如何解决的?能指教一下吗?

哎呦,不错哦!

在新建工程的时候设置一下能使用浮点数。可以去下个CW的使用说明。

小编互动很好,学习了


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top