查看: 3938|回复: 5

[其他] 中断函数中变量赋值不正确

[复制链接]

该用户从未签到

2

主题

15

帖子

0

新手上路

Rank: 1

积分
16
最后登录
1970-1-1
发表于 2011-5-9 10:21:50 | 显示全部楼层 |阅读模式
在CodeWarrior中编程,外部时钟每分钟中断一次,定义一个全局变量count_save,在中断函数中赋值语句为:count_save++;
在单步运行时,每进入一次中断,该变量值确实是每次加1;
但全速运行,每进一次中断,该变量值加5;
请问这是什么原因?
我知道答案 目前已有4人回答
回复

使用道具 举报

该用户从未签到

2

主题

8

帖子

0

新手上路

Rank: 1

积分
21
最后登录
1970-1-1
发表于 2011-5-9 10:39:09 | 显示全部楼层

RE:中断函数中变量赋值不正确

单步运行是一步步的,全速运行的时候会调用好多子程序,你程序里是不是子程序比较多,你再好好看看你的循环语句,我之前也经常出现单步运行没错,但全速运行就报错,建议你一步步用断点方式诊断一下各个变量值。CodeWarrior跟VS差不多,我之前一直用VS2005,VS2008的,CodeWarrior我也是个新手,不过两者在调试单步与全速上很相似的。

该用户从未签到

2

主题

15

帖子

0

新手上路

Rank: 1

积分
16
最后登录
1970-1-1
 楼主| 发表于 2011-5-9 11:16:00 | 显示全部楼层

RE:中断函数中变量赋值不正确

在其他地方没有给这个变量赋值,只是引用而已。
中断函数中,这个变量放在循环语句外面。

该用户从未签到

40

主题

256

帖子

0

金牌会员

Rank: 6Rank: 6

积分
10386
最后登录
2023-4-17
发表于 2011-5-9 12:54:16 | 显示全部楼层

RE:中断函数中变量赋值不正确

中断标志没有清!!!

该用户从未签到

2

主题

15

帖子

0

新手上路

Rank: 1

积分
16
最后登录
1970-1-1
 楼主| 发表于 2011-5-9 15:02:39 | 显示全部楼层

RE:中断函数中变量赋值不正确

中断标志已经清了!

该用户从未签到

45

主题

85

帖子

0

新手上路

Rank: 1

积分
57
最后登录
1970-1-1
发表于 2011-5-9 20:27:47 | 显示全部楼层

RE:中断函数中变量赋值不正确

我也遇到过这样的问题。我用的是IO中断。在中断的时候设置一个标志位,在主程序中根据这个标志位调用一个子函数。在子函数的开始先关掉该IO中断,执行完程序的时候,在该子函数的末尾再开该IO中断。可是我单步运行的时候发现,执行完该子函数的最后的开该IO中断语句后,马上又进入了该IO的中断服务子函数。一种不明白为什么。
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-25 06:41 , Processed in 0.093943 second(s), 26 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表