4.16日学习笔记之触摸按键
SC系列芯片的触摸按键,每个通道对应每个值,如TK0对应bit0,TK5对应bit5,即哪一个按键按下时,哪一个通道被置1;因此在后期处理按键值需要找到是哪一个按键被按下,再将键值统一转换成0x01,0x02,0x04。
方法如下:
先确定总的触摸通道数,for循环进入,每次对触摸按键返回的键值进行右移,若产生进位信号,即CY=1;令此时的真实键值=触摸按键返回的键值<<POS,再对开启的触摸通道数进行右移,若产生进位信号,即CY=1,POS++。
Valuetemp=CTKGetValue();
for(i=0;i++;i<TKNumMax)
{
Valuetemp<<1;
if(CY!=0)
{
Value=(uchar)1<<POS;
}
TKNum<<1;
if(CY!=0)
{
POS++;
}
}
BYD系列芯片的触摸按键,在初始化过程中,会对开启的触摸按键进行前移,即SNS00=7;(触摸按键扫描过后,会将SNS7的键值赋值给SNS00),bit0对应SNS00,bit5对应SNS05。
Value=CTKGetValue();