我想在中断服务程序中实现用一个变量count 计数功能,然后在主程序中判断count=多少,根据计的数执行哪个子函数。
可是发现中断中count只进行一次,后来不再自加,也就是count=1,不管中断几次,朱程序中只执行xiansu()子程序。
count我设置为全局变量,是不是中断中的计数传不到主程序中呢/?
unsigned int count;
//中断服务程序void IRQ3(void)__attribute__((ISR)); //接在IOB2口上void IRQ3(void){ count+=1; *P_INT_Clear = 0x0100;}
//主函数
int main(void){ *P_IOB_Dir=0x0f00; //初始化IOB,IOB8~11同向输出;1为输出 *P_IOB_Attrib=0x0f00; //外部中断接在IOB2口 *P_IOB_Data=0x0004; //IOB2为上拉输入 *P_INT_Mask|=0x0100; //开中断IRQ3,EXT1,还有一种表示方式?C_IRQ3_EXT __asm("int irq"); while(1) { if (count==1) GoAhead(); else if (count==2) TurnLeft(); else if (count==6) { GoAhead(); count=0;} else BackUp(); } }