单片机c语言的问题,全局变量很古怪啊!

externintflag=1;我用中断7使全局变量自增一,但我一放开中断,flag最终还是变成1了,大致程序如下(有删节):intflaging=1;voidINT7(... extern int flag=1;
我用中断7使全局变量自增一,但我一放开中断,flag最终还是变成1了,大致程序如下(有删节):
int flaging=1;
void INT7(void)interrupt 19
{ flaging++;
if(flaging==3)flaging=0;
P3IF|=0x00;}
void main()
{
int dianya, i=0;
set();//各种寄存器初始化
AD0BUSY=1;
dianya=ADC0;
while(1)
{
EA=1;
TR0=1;
EIP2=0x10;
if(AD0INT==1)
{dianya=ADC0;AD0INT|=0;}
EA=0;
H_D(VREFDA,dianya);//转化成ASCLL码
SHOWSCR(flaging);} //显示
}
我可以保证flaging只能通过中断7改变;MAIN()里没有改变flaging值的语句。
拜托了,英雄。
展开
 我来答
yibunihao
2011-01-06 · TA获得超过1461个赞
知道小有建树答主
回答量:451
采纳率:0%
帮助的人:293万
展开全部
什么情况,前面两行跟下面有关系不,是flag还是flaging,如果前两行没关系的话,那就在中断里打上断点,看程序有么有跑进去,观察变量值,一步一步跟下去就清楚了,祝成功~~
无中生有0123
2011-01-06 · 知道合伙人教育行家
无中生有0123
知道合伙人教育行家
采纳数:237 获赞数:917
物联网、智能柜.

向TA提问 私信TA
展开全部
进中断了?
一步步调试试
先看进中断
再判断是否加一
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
心想杏杏
2011-01-06
知道答主
回答量:43
采纳率:0%
帮助的人:21.2万
展开全部
是 flag 变1 还是 flaging 变1?
你要实现的功能是什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式