解释代码void task_touch(void) { gKeyTemp = 0; gKeyTemp = (TK_Info[TK_OUT_DATA0] & 0x07); if(gKeyBak == gKeyTemp) { if(gKeyOld == gKeyTemp) { if(gKeyTemp != 0) { if(F_LedSwitch) { if(gKeyPress == 500) { gKeyPress = 501; F_KeyLong = 1; } if(gKeyPress < 500) { gKeyPress++; } } } } else { gKeyOld = gKeyTemp; gKeyPress = 0; if(gKeyTemp != 0) { gKeyReal = gKeyTemp; } else { if(F_KeyLong == 0) { } F_KeyLong = 0; } } } else { gKeyBak = gKeyTemp; } }
时间: 2024-04-06 07:32:05 浏览: 14
这段代码是一个名为 `task_touch` 的函数,主要实现的是触摸屏的按键检测功能。具体来说,代码中的 `TK_Info[TK_OUT_DATA0]` 表示触摸屏输出的数据,通过 `& 0x07` 取出最后三位,即可得到当前按下的按键编号。
接下来的逻辑主要是判断当前按键状态与之前状态的变化情况,并进行相应的处理。其中 `gKeyBak` 表示上一次检测到的按键状态,`gKeyOld` 表示上上次检测到的按键状态,`gKeyTemp` 表示当前检测到的按键状态。如果当前状态与上一次状态相同,说明按键状态没有发生变化,需要判断是否出现长按的情况,如果是短按,则将按键状态保存在 `gKeyReal` 变量中。
如果当前状态与上一次状态不同,则表示按键状态发生了变化,需要更新 `gKeyOld` 和 `gKeyPress` 等状态变量,并根据情况更新 `gKeyReal` 和 `F_KeyLong` 等状态变量。最终,函数会根据按键状态的变化情况,更新一系列的状态变量,以供其他部分的代码使用。
相关问题
解释代码void task_touch(void) { gKeyTemp = 0; gKeyTemp = (TK_Info[TK_OUT_DATA0] & 0x07); if(gKeyBak == gKeyTemp) { if(gKeyOld == gKeyTemp) { if(gKeyTemp != 0) { if(F_LedSwitch) { if(gKeyPress == 1500) { gKeyPress = 1501; F_KeyLong = 1; F_CwLong = 1; } if(gKeyPress < 1500) { gKeyPress++; } } } } else { gKeyOld = gKeyTemp; gKeyPress = 0; if(gKeyTemp != 0) { gKeyReal = gKeyTemp; } else { if(F_KeyLong == 0) { } F_KeyLong = 0; } } } else { gKeyBak = gKeyTemp; } }
这是一个函数,函数名为task_touch。该函数中的代码实现了对触摸传感器的读取及处理。具体来说,代码首先将触摸传感器的读取值存储在gKeyTemp变量中,然后判断gKeyTemp与之前保存的gKeyBak是否相同。如果相同,则判断gKeyTemp与之前保存的gKeyOld是否相同,如果相同,则检测是否需要进行长按处理;如果不相同,则将gKeyOld更新为gKeyTemp,并将gKeyPress清零,同时如果gKeyTemp不为0,则更新gKeyReal的值。如果gKeyTemp与gKeyBak不相同,则更新gKeyBak的值。最后,该函数执行完毕。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)