求解!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 警告,注释掉这一部分就程序没问题了。真心不解,求大神们指点!
{
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的使用说明。
小编互动很好,学习了