标题: 三行代码按键 [打印本页]

作者: bd5fna    时间: 2024-6-5 18:51
标题: 三行代码按键
请大佬们指点下,本站抄的按键三行代码,可以用,但只有短按,不能长按。想请教一下,这个代码可以短按、长按、双击吗?
void KeyRead( void )

{

        unsigned char ReadData = P1^0xff;

  Trg = ReadData & (ReadData ^ Cont);                                                  

  Cont = ReadData;                                                                            
}
void key_scan(void)   
{                    
        unsigned int cnt=0;
        if(Trg & 0x01)        //Cont&0x01  应该是长按,但没有效果

                {
                        setled=0;                                        //LED灯点亮
               
                }


作者: lkc8210    时间: 2024-6-5 21:07
当然没效果,长按要累加时间的
  1. void key_scan(void)   
  2. {                    
  3.         static unsigned int cnt=0;//静态变量是重点
  4.         if(Cont & 0x01)
  5.                 {
  6.                         if(cnt<=1000)cnt++;
  7.                         if(cnt==1000)
  8.                                 setled=0;//LED灯点亮          
  9.                 }else{
  10.                         cnt = 0;
  11.                 }
  12. }
复制代码

作者: bd5fna    时间: 2024-6-6 08:21
lkc8210 发表于 2024-6-5 21:07
当然没效果,长按要累加时间的

感谢!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1