原创 IAR 7.60之奇怪错误

2011-9-20 10:43 1805 9 9 分类: 软件与OS
将IAR 7.51的代码改用 7.60编译后,居然发现了代码的执行结果不一样!

使用串口来设置时间,接收到串口设置时间的字符串是OK的,接着将新的时间提取出来,提取时间的代码如下:
newTime[0] = (uint8)(uartBuffer[1] - '0') * 10;
newTime[0] += (uint8)(uartBuffer[2] - '0');
//uartBuffer[1] = '2', uartBuffer[2] = '3';
按理newTime[0] = 23;在7.51中也确是如此,但在7.60编译后运行结果是newTime = 179, // 0xb3


最后解决的办法是将 -换成%.改代码如下:
newTime[0] = (uint8)(uartBuffer[1] % '0') * 10;
newTime[0] += (uint8)(uartBuffer[2] % '0');
//newTime[0] = 23。

现目前为止,还是知道原因。
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
9
关闭 站长推荐上一条 /3 下一条