打印

再问个ASCII转换十进制的问题

[复制链接]
1377|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
happywxg|  楼主 | 2009-3-31 09:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//*****************************************
//        ASCII码转换为十进制 
//*****************************************
uint change()
{

    temp0=re_dat[0]-48;
    temp1=re_dat[1]-48;
    temp2=re_dat[2]-48;
    speed=temp0*100+temp1*10+temp2;
    if(temp0==1) P10=0;
    if(temp1==3) P11=0;
    if(temp2==7) P13=0;
    if(speed==137) P1=0xff;
    //WriteDat(8,speed);
    return(speed);
}

re_dat[]里面放的是从串口受到的数字。
if(temp0==1) P10=0;
    if(temp1==3) P11=0;
    if(temp2==7) P13=0;
是测试代码,if为真,则灯亮,要是speed=137,则所有的灯灭。
现在我从调试助手里发一个数:137.
现象是三个if的等都是亮的,但是if(speed==137)对应的状态不对,speed里面的数不是137。这是为什么啊??
是不是我的算法有问题啊,应该怎么算啊??

相关帖子

沙发
wjy1107| | 2009-3-31 11:33 | 只看该作者

看看你定义的变量是什么类型的,无符号?有符号?

使用特权

评论回复
板凳
leolle| | 2009-3-31 12:13 | 只看该作者

麻烦你说清楚一些

使用特权

评论回复
地板
songbangyan| | 2009-3-31 15:25 | 只看该作者

你这个有问题

在串口发送137一个数,你怎么变到一个数组里面去的?既然变到一个数组了,又何必麻烦的还原?说实话,没看明白你的程序!

使用特权

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

本版积分规则

70

主题

136

帖子

0

粉丝