打印

简单的msp430编程问题C语言

[复制链接]
2132|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tl5324260|  楼主 | 2011-12-26 13:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<msp430x16x.h>unsigned long a;void main(void){  WDTCTL=WDTPW+WDTHOLD;  a=200*200;}以上是我的程序,但警告为 integer operation result is out of range 和integer conversion resulted in a change of sign .所得数a为乱码,但是当把程序改成a=400000*200时,警告全部消失,并且所得数a=80000000;所用软件是IAR Embedded Workbench IDE.那位高手指点一下迷津。

相关帖子

沙发
liuzhuo1978| | 2011-12-26 14:14 | 只看该作者
正确的是
IAR默认常数是int型,程序中a为无符号,200有符号,两个有符号数相乘得到是有符号数,再把这个值付给无符号a,于是得到4294941760这个不是乱码是溢出了,一看这种大端数你应该有所注意。
可以这样改
#include<msp430x16x.h>
unsigned long a;
void main(void)
{
  WDTCTL=WDTPW+WDTHOLD;
  a=200u*200u;
}
就行了,我运行过,这样随便你怎么运行都不会错,编译器可以设置变量定义你自己多看看,还有你这种编程时不可靠的,在IAR中无使用变量编译器会自动跳过,结尾也应该加while(1)
正确如下
#include<msp430x16x.h>
unsigned long a;
void main(void)
{
  WDTCTL=WDTPW+WDTHOLD;
  a=200u*200u;
  a= a;
  while(1);
}

使用特权

评论回复
板凳
sqcumt123| | 2011-12-26 19:04 | 只看该作者
楼主照着2楼网友的指点试试,应该可以的

使用特权

评论回复
地板
永远的不知| | 2011-12-26 22:43 | 只看该作者
请问楼主的语句
a=200*200;
这个在程序中是用来做什么的?
有些好奇

使用特权

评论回复
5
tianm| | 2011-12-26 22:58 | 只看该作者
说句题外话 这种程序的书写方法 不方便阅读

使用特权

评论回复
6
jzhjt29| | 2011-12-27 13:13 | 只看该作者
2楼

使用特权

评论回复
7
diny| | 2011-12-27 13:37 | 只看该作者
:handshake 2# liuzhuo1978

使用特权

评论回复
8
liugp25| | 2011-12-27 13:44 | 只看该作者
咱也试试

使用特权

评论回复
9
peter_zheng| | 2011-12-27 20:21 | 只看该作者
楼主的程序是C语言功底问题,这不是MSP430本身问题

使用特权

评论回复
10
TI_MCU| | 2011-12-28 00:07 | 只看该作者
2楼正解。

其实这是编译器的问题,不同的编译器可能会有不同结果。

使用特权

评论回复
11
lzlong| | 2011-12-28 10:18 | 只看该作者
学习了

使用特权

评论回复
12
EandE| | 2011-12-28 11:53 | 只看该作者
2楼讲的挺好的

使用特权

评论回复
13
tl5324260|  楼主 | 2011-12-28 13:34 | 只看该作者
谢谢各位     呵呵

使用特权

评论回复
14
rebewn| | 2011-12-28 13:40 | 只看该作者
学习了

使用特权

评论回复
15
uestchm| | 2011-12-28 14:32 | 只看该作者
好好学习 多谢楼主分享了

使用特权

评论回复
16
TA| | 2011-12-28 17:21 | 只看该作者
谢楼主

使用特权

评论回复
17
jamie-ma| | 2011-12-28 17:57 | 只看该作者
同意上解

使用特权

评论回复
18
明天我还来| | 2011-12-28 19:52 | 只看该作者
同问。 4# 永远的不知

使用特权

评论回复
19
msp430ing| | 2011-12-29 22:18 | 只看该作者
2楼正解,楼主试了吗

使用特权

评论回复
20
爱之翼V| | 2011-12-30 15:04 | 只看该作者
支持2楼的,楼主可以试试

使用特权

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

本版积分规则

0

主题

208

帖子

1

粉丝