telink support team:
在key_debounce_filter()中有这样的语句,这个语句是否就是用于判断两次是否相同的消抖操作呢? 这个的理解是否与cur = (pre ^tmp)? last :tmp;这样的语句等效? 因为实在没有理解到这个消抖是具体算法,所以这里咨询。 在这个filter函数中,matrix_differ,key_matrix_same_as_last_cnt两个变量没有看到在工程的其他地方使用,此函数中只是赋值,也没有使用,请问下这两个变量的作用是?
mtrx_cur[i] = ( ~mtrx_last[i] & (mtrx_pre[i] & mtrx_tmp) ) | ( mtrx_last[i] & (mtrx_pre[i] | mtrx_tmp) );
我看了文档,没有找到相关的内容。可以帮解释下吗? 多谢!!
你好,
是一个简单的滤波,当前键值和之前做判断,你可以加些打印信息判断处理过程。
TL_Soyo,
多谢回复。 处理过程我是明白的。就是没理解到消抖这个如何处理的。
在这个filter函数中,matrix_differ,key_matrix_same_as_last_cnt两个变量没有看到在工程的其他地方使用,此函数中只是赋值,也没有使用,请问下这两个变量的作用是?
mtrx_cur[i] = ( ~mtrx_last[i] & (mtrx_pre[i] & mtrx_tmp) ) | ( mtrx_last[i] & (mtrx_pre[i] | mtrx_tmp) );
上面的这个语句可以使用cur = (pre ^tmp)? last :tmp;这条语句直观的来理解吗? 两条语句是等效的吗?