找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1026|回复: 6
收起左侧

问一个触摸按键函数的问题

[复制链接]
ID:407019 发表于 2022-4-13 17:37 | 显示全部楼层 |阅读模式
u8 Tpad_Scan(void)
{
        static u8 k=0;
        u8 res=0;
        u16 rval;   //保存扫描
        rval=Get_val();   
        if(rval>(TpadVal+100))
        {
                if(k==0) res=1;
          k=3;
        }
  if(k) k--;
        return res;
}


这是触摸按键的函数  问一下这里的k   不是永远等于2吗  ?   

回复

使用道具 举报

ID:624769 发表于 2022-4-13 20:44 | 显示全部楼层
if(rval>(TpadVal+100))  注意这个条件, 满足这个条件, K 才会  =  3   才会 -- 之后 等于 2, 否则 会慢慢 减到0 的。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:105805 发表于 2022-4-14 09:35 | 显示全部楼层
if(rval>(TpadVal+100))  成立时 K=3,之后才会执行K--,执行后K=2;
if(rval>(TpadVal+100)) 不成立时 K=0,不会进到2个if函数里;

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:121859 发表于 2022-4-14 14:00 | 显示全部楼层
函数结束时:k有两个值,第一为2,第二为0
回复

使用道具 举报

ID:1018367 发表于 2022-4-14 15:00 | 显示全部楼层
可能是2可能是0
回复

使用道具 举报

ID:960619 发表于 2022-4-14 21:42 来自手机 | 显示全部楼层
If(k)这句在,为什么k还能 - -呢?
回复

使用道具 举报

ID:491577 发表于 2022-4-14 22:35 | 显示全部楼层
本帖最后由 hhh402 于 2022-4-14 22:39 编辑

static u8 k=0;这句的意思是:k是静态变量。类似于全局变量。 if(rval>(TpadVal+100))不成立:第一次运行Tpad_Scan();后k=2,第二次运行Tpad_Scan();后k=1,第三次运行Tpad_Scan();后k=0,第四次运行Tpad_Scan();后k=2,然后一直循环。
If(k)这句的意思是:k=0为假,k<>0为真。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表