高级会员

- 积分
- 745
- 金钱
- 745
- 注册时间
- 2016-1-20
- 在线时间
- 78 小时
|
30金钱
原子的源程序,键盘检测代码(只贴主函数)!看红字
int main(void)
{
u8 key; //保存键值
delay_init(168); //初始化延时函数
LED_Init(); //初始化LED端口
BEEP_Init(); //初始化蜂鸣器端口
KEY_Init(); //初始化与按键连接的硬件接口
LED0=0; //先点亮红灯
while(1)
{
KEY_Scan(0); //有返回值函数,原来是key=KEY_Scan
if(key)
{
switch(key)
{
case WKUP_PRES: //控制蜂鸣器
BEEP=!BEEP;
break;
case KEY0_PRES: //控制LED0翻转
LED0=!LED0;
break;
case KEY1_PRES: //控制LED1翻转
LED1=!LED1;
break;
case KEY2_PRES: //同时控制LED0,LED1翻转
LED0=!LED0;
LED1=!LED1;
break;
}
}else delay_ms(10);
}
}
无论是那种情况编译都不会报错!我的疑问如下:
1,这个是软件漏洞还是本来需要这样设计?
2,返回值存贮到那里了,还是这句话就想一个空语句?
3,这个函数的内部会不会被执行?
|
最佳答案
查看完整内容[请看2#楼]
我知道楼主的意思,也是看了刚才小白菜的帖子的,我根据我的理解说一下。
1.这个问题不清楚。
2.返回值应该是储存到了一个寄存器里,具体是那个寄存器,可以去keil看反汇编,我猜测储存到了R0里面。
3.这个函数内部会执行。
|