找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 14656|回復: 7
打印 上一主題 下一主題
收起左側(cè)

合泰單片機觸摸按鍵數(shù)據(jù)手冊自編寫程序

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:244945 發(fā)表于 2017-11-1 15:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
初始化中,對觸摸靈敏度自動校正調(diào)節(jié)
do
{
  asm("CLR WDT");//喂狗
  if(TouchUpdate)
  {
   TouchUpdate=0;
   if(TouchData>1230)
   {
    TF--;
    if(TK16D<=(TF-2))
    {
    Slottimer++;
    Touch_Init();
    }
    else if(TK16D>=(TF+2))
    {
    Slottimer--;
    Touch_Init();
    }
   }
   else if(TouchData<1225)
   {
    TF++;
    if(TK16D<=(TF-2))
    {
    Slottimer++;
    Touch_Init();
    }
    else if(TK16D>=(TF+2))
    {
    Slottimer--;
    Touch_Init();
    }
   }
   else
   {
    break;
   }   
  }
}while(1);


void Touch_Init(void)
{
_tkst=0;
/*****************************************************************************
觸控按鍵 8 位定時 / 計數(shù)器寄存器    時隙計數(shù)器溢出設定的時間為 (256-TKTMR[7:0]) × 32
*****************************************************************************/
_tktmr=232;//時隙計數(shù)器溢出時間:(256-TKTMR[7:0])X32 226
/*****************************************************************************
TK16S(1~0):觸控按鍵模塊 16 位計數(shù)器時鐘選擇位
00 =Fsys 01 =Fsys/2 10 =Fsys/4 11 =Fsys/8
*****************************************************************************/  
_tk16s1=1;
_tk16s0=0;
/*****************************************************************************
TKFS(1~0):觸控按鍵振蕩器頻率選擇位
00 =500KHZ 01 =1000KHZ 10 =1500KHZ 11 =2000KHZ
*****************************************************************************/  
_tkfs1=1;
_tkfs0=1;
/*****************************************************************************
參考振蕩器內(nèi)建電容選擇  振蕩器內(nèi)建電容選擇為 (TKM0RO[9:0] × 50pF)/1024
*****************************************************************************/
_tkm0rol= Slottimer;//159  134
_tkm0roh=Slottimer>>8;//0;
/******TKM0C0********/
/*****************************************************************************
復用按鍵選擇  00 =KEY1 01 =KEY2 10 =KEY3 11 :KEY4
*****************************************************************************/
_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)
000 =1380Khz 001 =1500KHZ 010 =1670KHZ 011 =1830KHZ
100 =2000KHZ 101 =2230KHZ 110 =2460KHZ 111 =2740KHZ
*****************************************************************************/
_m0sof2=1;
_m0sof1=0;
_m0sof0=0;
/******TKM0C1********/
/*****************************************************************************
時隙計數(shù)器選擇  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))) isr_Touch(void)
{
//時隙計數(shù)器溢出標志位
if(_tkrcov)
{
  if(TouchUpdate==0)
  {
  TouchData=_tkm016dh;//_tk16dh;//
  TK16D =_tk16dh;
  TouchData<<=8;
  TK16D <<=8;
  TouchData|=_tkm016dl;//_tk16dl;//
  TK16D |=_tk16dl;
  }
  _tkst=0;
  TouchUpdate=1;
}
//觸控按鍵模塊 16 位 C/F 計數(shù)器溢出標志位
  if(_tkcfov)
{
  _tkcfov=0;
}
//觸控按鍵模塊 16 位計數(shù)器溢出標志位
if(_tk16ov)
{
  _tk16ov=0;
}
}

評分

參與人數(shù) 1黑幣 +5 收起 理由
南瓜派 + 5 很給力!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發(fā)
ID:74303 發(fā)表于 2017-11-5 22:32 | 只看該作者
呵呵,合泰觸摸都出來了
回復

使用道具 舉報

板凳
ID:249001 發(fā)表于 2017-12-20 17:30 | 只看該作者
合泰觸控芯片開發(fā)一般是用他們提供的軟件包進行開發(fā)的,不用這么麻煩
回復

使用道具 舉報

地板
ID:301571 發(fā)表于 2018-4-3 16:29 | 只看該作者
MingYY 發(fā)表于 2017-12-20 17:30
合泰觸控芯片開發(fā)一般是用他們提供的軟件包進行開發(fā)的,不用這么麻煩

合泰提供的軟件包直接把RAM占用到99%,怎么破
回復

使用道具 舉報

5#
ID:301571 發(fā)表于 2018-4-3 16:29 | 只看該作者
合泰軟件包占用內(nèi)存太大
回復

使用道具 舉報

6#
ID:73327 發(fā)表于 2018-4-24 20:54 | 只看該作者
合泰軟件包占用內(nèi)存太大了!根本不夠用!
回復

使用道具 舉報

7#
ID:419594 發(fā)表于 2019-7-18 16:04 | 只看該作者
很有用的哦!
回復

使用道具 舉報

8#
ID:300260 發(fā)表于 2020-6-29 17:25 | 只看該作者
幫助實在是太大了。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表