标题:
单片机中断下加一个循环程序,循环不执行
[打印本页]
作者:
哈哈哈1999
时间:
2020-1-6 11:50
标题:
单片机中断下加一个循环程序,循环不执行
我把中加那个while()循环加进去之后,他只亮一下,不是我想要的循环闪亮
void EXTI3_IRQHandler(void)
{
delay_ms(10);//消抖
if(KEY1==0) //按键KEY1
{
{
while(WK_UP && KEY0==1)
LED0 =0;
LED1 =1;
LED2 =0;
LED3 =0;
LED4 =0;
LED5 =0;
LED6 =0;
LED7 =0;
LED8 =0;
delay_ms(500);
LED0 =0;
LED1 =0;
LED2 =0;
LED3 =0;
LED4 =0;
LED5 =1;
LED6 =1;
LED7 =0;
LED8 =0;
delay_ms(500);
}
EXTI_ClearITPendingBit(EXTI_Line3); //清除LINE3上的中断标志位
}
}
作者:
f556
时间:
2020-1-6 16:20
if(KEY1==0) //按键KEY1
{
{
while(WK_UP && KEY0==1)
LED0 =0;
LED1 =1;
LED2 =0;
LED3 =0;
LED4 =0;
LED5 =0;
LED6 =0;
LED7 =0;
LED8 =0;
相当于 while(WK_UP && KEY0==1) LED0 =0;
其它LED属于if的责任范围。调一下{}位置。
作者:
man1234567
时间:
2020-1-6 16:35
循环不执行,应检查循环执行条件是否满足。
作者:
llllw
时间:
2020-1-6 17:16
1.中断服务函数不能传入参数; 2.中断服务函数不能有返回值; 3.中断服务函数应做到短小精悍; 4.不要在中断函数中使用printf函数,会带来重入和性能问题
作者:
llllw
时间:
2020-1-6 17:16
1.中断服务函数不能传入参数;
2.中断服务函数不能有返回值;
3.中断服务函数应做到短小精悍;
4.不要在中断函数中使用printf函数,会带来重入和性能问题
作者:
f556
时间:
2020-1-7 15:55
答复千差万别。再重申一次:
{
while(WK_UP && KEY0==1)
LED0 =0;
改成:
while(WK_UP && KEY0==1)
{
LED0 =0;
作者:
jizhongbiao
时间:
2020-1-8 11:13
在中断里面搞循环。。。也是醉了
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1