中级会员
 
- 积分
- 294
- 金钱
- 294
- 注册时间
- 2015-2-23
- 在线时间
- 26 小时
|
5金钱
这是中断://-----------------------------------------------------
void EXTI9_5_IRQHandler(void)
{
EXTI-> R=1<<5;
Q_ang--;
}
这是主程序:
Q_ang=50;
extiinnt(1);//中断开
while(lcdXX2!=0)
{
if(Q_ang==0)
{
Q_ang=50;
lcdXX2=lcdXX2-15;
}
if(lcdXX1!=lcdXX2)
{
lcdXX1=lcdXX2;
LCD_ShowxNum(100,210,lcdXX2,10,16,0);
}
}
extiinnt(0);//中断关
出现的问题是中断里Q_ang减到=0时不回来执行 while(lcdXX2!=0)里面的Q_ang=50和后面的程序,Q_ang直接==255了,而不是Q_ang=50,不管中断多少次就是0-255之间跳,好像程序回不来 while()里了
是不是跟个有关呢???
//开关中断
void extiinnt(u8 en)
{
EXTI-> R=1<<5; 清标志
if(en==1)EXTI->IMR|=1<<5;///不屏障中断
if(en==0)EXTI->IMR&=~(1<<5);///屏障中断
}
|
最佳答案
查看完整内容[请看2#楼]
Q_ang--改为if(Q_ang)Q_ang--
这样改一下不就可以了么,一定就会运行到
if(Q_ang==0)
{
Q_ang=50;
lcdXX2=lcdXX2-15;
}
|