初始化中,自动校正调整触摸灵敏度
德奥
{
ASM(clrwdt ); //给狗喂食
是跟踪更新(if )
{
touch更新=0;
if(touchdata1230 ) )。
{
TF----;
if ) TK16d=(TF-2 ) )
{
慢跑时间
Touch_Init (;
}
ELSEif(TK16d=(TF2 ) ) ) ) ) ) )。
{
lottimer----;
Touch_Init (;
}
}
(ELSEif(Touchdata1225 ) ) ) ) ) ) ) )。
{
TF;
if ) TK16d=(TF-2 ) )
{
慢跑时间
Touch_Init (;
}
ELSEif(TK16d=(TF2 ) ) ) ) ) ) )。
{
lottimer----;
Touch_Init (;
}
}
else
{
布雷克;
}
}
(while ) 1;
voidtouch_init(void ) )
{
_tkst=0;
/* * * * * * * * * * * * * * * * * *
触摸键8位定时/计数器寄存器的时隙计数器溢出设定的时间为65256-tktmr[7:0](32 )
* * * * * * * * * * * * * * * * *
_tktmr=232; //插槽计数器溢出时间: 65256-tktmr[7:0](x32226 )
/* * * * * * * * * * * * * * * * * *
tk16s(1~0)触摸按键模块16位计数器的时钟选择位
00=fsys 01=fsys/210=fsys/411=fsys/8
* * * * * * * * * * * * * * * * *
_tk16s1=1;
_tk16s0=0;
/* * * * * * * * * * * * * * * * * *
tkfs(1~0)触键振荡器频率选择位
00=500 k hz01=1000 khz 10=1500 khz 11=2000 khz
* * * * * * * * * * * * * * * * *
_tkfs1=1;
_tkfs0=1;
/* * * * * * * * * * * * * * * * * *
参考振荡器内置电容选择振荡器内置电容选择为(tkm0ro(9:0 )50pf )/1024
* * * * * * * * * * * * * * * * *
_tkm0rol=Slottimer; //159134
_tkm0roh=Slottimer8; //0;
/* * * * * * * tkm0c0* * * * * * * * * /
/* * * * * * * * * * * * * * * * * *
复用密钥选择00=key 101=key 210=key 311: key 4
* * * * * * * * * * * * * * * * *
_m0mxs1=0;
_m0mxs0=1; 复用KEY2
/* * * * * * * * * * * * * * * * * *
倍频功能控制0=可去除1=使能
* * * * * * * * * * * * * * * * *
_m0dfen=0;
/* * * * * * * * * * * * * * * * * *
滤波器功能控制0=可去除1=使能
* * * * * * * * * * * * * * * * *
_m0filen=1;
/* * * * * * * * * * * * * * * * * *
C/F振荡器以M0SOF2~M0SOF0决定0=以M0SOF2~M0SOF0位控制1=以硬件电路控制
* * * * * * * * * * * * * * * * *
_m0sofc=0;
/* * * * * * * * * * * * * * * * * *
选择关键振荡器和参考振荡器作为选择C/F振荡器时频率选择位(M0SOFC=0) m0sof )2~0)
00=1380 khz 001=1500 khz 010=1670 khz 011=1830 khz
100=2000 khz 101=2230 k Hz 110=2460 khz 111=2740 khz
* * * * * * * * * * * * * * * * *
_m0sof2=1;
_m0sof1=0;
_m0sof0=0;
/* * * * * * * tkm0c1* * * * * * * * * /
/* * * * * * * * * * * * * * * * * *
时隙选择0=参考振荡器1=Fsys/4
* * * * * * * * * * * * * * * * *
_m0tss=0;
/* * * * * * * * * * * * * * * * * *
振荡器控制0=可去除1=使能
* * * * * * * * * * * * * * * * *
_m0roen=1;
/* * * * * * * * * * * * * * * * * *
键控振荡器控制0=除能1=使能
* * * * * * * * * * * * * * * * *
_m0koen=1;
/* * * * * * * * * * * * * * * * * *
I/O端子和触摸按钮2的功能选择0: I/O端子1 :触摸按钮
* * * * * * * * * * * * * * * * *
//_m0k4io=0; //PA4使触摸键一个功能有效的KEY1
//_m0k3io=0; //PA3使触摸键一个功能有效的KEY2
_m0k2io=1; //PA1使触摸键一个功能有效的KEY3
//_m0k1io=0; //PA5使触摸键一个功能有效的KEY4
_tkme=1; //使触摸键中断有效
//0 1 :打开触摸键检测
_tkst=1; //打开触摸键检测
}
oid_attribute((interrupt )0x08 ) ) ) ) ) ) ) )。
{
//插槽计数器溢出标志
if(_tkrcov ) ) ) ) ) )。
{
if(touchupdate==0) ) ) ) )。
{
TouchData=_tkm016dh; //_tk16dh; //
TK16D=_tk16dh;
TouchData=8;
TK16D=8;
TouchData|=_tkm016dl; //_tk16dl; //
TK16D |=_tk16dl;
}
_tkst=0;
touch更新=1;
}
//触摸按键模块16位C/F计数器溢出标志位
if(_tkcfov ) ) )。
{
_tkcfov=0;
}
//触摸按键模块16位计数器溢出标志
if(_tk16ov ) ) ) )。
{
_tk16ov=0;
}
}