嵌入式--static在按键电路中的作用

函数原理:

1.用static关键字定义的变量,其值会保存,下次再执行这个函数的时候不会被初始化 。

2.如果mode==1,则是支持连按模式。key_up=0之后key_up也会立刻变成1,保证继续返回键值

3.如果mode==0,则是不支持连按模式。key_up=0之后key_up无法变成1,无法继续返回键值。

u8 KEY_Scan(u8 mode)
{	 
	static u8 key_up=1;//static修饰的变量,只进入一下,下次则不进入
	if(mode)key_up=1;  //mode为1就是支持连按,否则不支持。		  
	if(key_up&&(KEY0==0||KEY1==0||WK_UP==1))
	{
		delay_ms(10);//去抖动 
		key_up=0;
		if(KEY0==0)return KEY0_PRES;
		else if(KEY1==0)return KEY1_PRES;
		else if(WK_UP==1)return WKUP_PRES;
	}
    else if(KEY0==1&&KEY1==1&&WK_UP==0)
    key_up=1; //如果没有按键按下,保证key_up的值为1,为下次按键做准备。	    
 	return 0;// 无按键按下
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值