打印

跪求高手解决疑难MSP430编程问题

[复制链接]
1675|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
algerlis|  楼主 | 2013-6-6 21:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近干项目发现一个非常诡异的问题。跪求高手帮忙解决。
单片机:MSP430F2274,开发环境:IAR4.0.2
有一段最简单的移位程序:
变量定义:
unsigned int tt1,tt2,tt3,tt4,tt5;
程序段:
tt1=16;
tt5=tt4;
tt4=tt3;
tt3=tt2;
tt2=tt1;
当这段程序放在主循环中时,完全没有问题,tt1=tt2=tt3=tt4=tt5=16;

然而当这段程序放在一个子程序中时,tt3,tt4,tt5的值却不等于16,
例如:

if(flag==1)
{tt1=16;
tt5=tt4;
tt4=tt3;
tt3=tt2;
tt2=tt1;










相关帖子

沙发
algerlis|  楼主 | 2013-6-6 21:53 | 只看该作者
操作错误,没有说完。
if(flag==1)
{tt1=16;
tt5=tt4;
tt4=tt3;
tt3=tt2;
tt2=tt1;
flag=0;
}
flag标志由timerB定时器1毫秒产生一次。这个程序段中执行时,通过内存查看窗口看tt3,tt4,tt5的值却不等于16,此问题困扰小弟多时不知如何解决,跪求高手帮助。

使用特权

评论回复
板凳
tianm| | 2013-6-6 22:50 | 只看该作者
数据要初始化

使用特权

评论回复
地板
hxfxt| | 2013-6-6 23:02 | 只看该作者
对的你的tt3,tt4,tt5应该是随机的吧.............看看c语言书吧

使用特权

评论回复
5
jifuele| | 2013-6-7 10:17 | 只看该作者
顶:victory:

使用特权

评论回复
6
banalmaster| | 2013-6-7 11:17 | 只看该作者
将变量定义为全局变量

使用特权

评论回复
7
algerlis|  楼主 | 2013-6-23 21:30 | 只看该作者
感谢各位关注,这段程序的前一段是采集8路AD值,然后移位做算术平均,结果发现移位程序始终出错,现已经发现问题,原因是在主程序中有段中断AD采集程序,用MSP430采集8路AD,采集结果是放在内存中,每次采集后会造成内存中数据的错乱,所以后面的数据移位程序会出错,将移位程序稍微远离AD采集程序就好了。

使用特权

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

本版积分规则

1

主题

58

帖子

0

粉丝