单片机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值的语句。
拜托了,英雄。 展开
我用中断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值的语句。
拜托了,英雄。 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询