key+=KEY_Scan(0);
switch(key)
{
case 0:关闭小灯;key+=1;break;
case 1:执行灯亮函数1;break;
case 2:关闭小灯;key+=1;break;
case 3:执行灯亮函数2;break;
case 4:关闭小灯;key+=1;break;
case 5:执行灯亮函数3;break;
case 6:关闭小灯;key+=1;break;
case 7:执行灯亮函数4;break;
case 8:关闭小灯;key=0;break;
default :break;
}
是应为你去掉了break,不是应为加了else if
K1 K2做成中断,有中断就置1,对应不同的if语句
哈哈,思路不对。
给你个例程自己研究吧
key+=KEY_Scan(0);
switch(key)
{
case 0:关闭小灯;key+=1;break;
case 1:执行灯亮函数1;break;
case 2:关闭小灯;key+=1;break;
case 3:执行灯亮函数2;break;
case 4:关闭小灯;key+=1;break;
case 5:执行灯亮函数3;break;
case 6:关闭小灯;key+=1;break;
case 7:执行灯亮函数4;break;
case 8:关闭小灯;key=0;break;
default :break;
}
//下面为定时器延时500ms图片变化的函数,可以改为小灯
void HP6_BMP(u8 x,u8 y)
{
if(delay_hp6>999)
{
delay_hp6=0;
OLED_DisplayBMP(x,y,40,40,HP6[0]);
}
else if(delay_hp6>499&&delay_hp6<1000)
{
OLED_DisplayBMP(x,y,40,40,HP6[1]);
}
OLED_Refresh_Gram();//刷新OLED屏用的
}
无语了,去掉while(1),把整个if括到while里面 你C语言没学好,谁教你的
一周热门 更多>