BS8XXXXC
觸控軟件包使用手冊
2019/04/24
V501
Page 1 of 19
20190424 V501
目錄
1.0 版本異動........................................................................................................ 3
2.0 軟件包介紹.................................................................................................... 4
2.1 軟件包結構 / 命名規則 .................................................................................... 4
2.2 觸控軟件包介紹 ................................................................................................. 4
2.2.1 功能介紹 ............................................................................................................................... 4
2.2.2 佔用資源 ............................................................................................................................... 6
2.2.3 參數介紹 ............................................................................................................................... 8
2.2.3.1 參數列表 .................................................................................................................... 8
2.2.3.2 參數說明 .................................................................................................................... 8
2.2.4 函數介紹(請參考 *.AEX 或 *.CEX 檔的內容) .......................................................... 9
2.2.4.1 資料 RAM .................................................................................................................. 9
2.2.4.2 標誌位 ...................................................................................................................... 10
2.2.4.3 副程序 ...................................................................................................................... 10
2.3 共用軟件包(基本功能模塊)介紹 ................................................................ 12
2.3.1 MAIN_PROGRAM .............................................................................................................. 12
2.3.2 USER_PROGRAM ............................................................................................................... 12
2.4 參數定義檔介紹(TKS_GLOBE_VARIES.INC;TKS_GLOBE_VARIES.H) .. 12
3.0 軟件包使用方法.......................................................................................... 13
3.1 使用流程 ........................................................................................................... 13
3.2 設計一個專案 ................................................................................................... 14
3.3 使用軟件包注意事項 ....................................................................................... 16
4.0 附錄.............................................................................................................. 17
4.1 軟件包適用型號 ............................................................................................... 17
4.2 ROM / RAM 宣告方式 (更詳細的說明,請參考 HT-IDE3000 使用手冊)17
4.3 設計一個新的軟件包(功能模塊) ................................................................ 18
4.4 常用軟件包介紹 ............................................................................................... 19
4.5 其它補充事項 ................................................................................................... 19
Page 2 of 19
20190424 V501
1.0 版本異動
日期
2019/04/24
版本
V501
適用型號
BS83A02C;BS83B04C;BS83B08C;BS83B12C;
BS83B16C;BS83B24C;BS83C40C;BS84B08C;
BS84C12C;BS86C08C; BS86D12C;BS86D20C;
BS86E16C; BS86DH12C;BS45F5930;
Page 3 of 19
20190424 V501
2.0 軟件包介紹
新一代的軟件包,不再單指只有觸控功能的軟件包,而是將週邊的應用功能都模塊化而這
些功能可藉由原廠、代理商或協力廠商的工程人員,共同來開發並包裝成軟件包的形式,
再提供給有需要的開發者使用,不需重複開發性質相同的軟件功能,以加速產品開發,降
低觸控應用的門檻。V501 的抗干擾能力上與 V413 相比有了較大提升。
2.1 軟件包結構 / 命名規則
為達到功能模塊化,形成不同的軟件包的目的,首先要建立的就是〝規則〞,包含檔案
的組成結構有哪些?以及名稱要如何取?才能讓使用者一看就知道軟件包的功能是什
麼!軟件包的組成結構至少要有 4 個檔案(寫程序所需用到的檔案,未來會視情況增加其
它說明文件,例如:原理圖………等),且主檔名皆相同,只有副檔名不同,用以區分不
用的用途,這 4 個檔案分別為:
xxxx.ASM 軟件包的匯編程序檔,若使用 C code 時,則.ASM 用 .C 取代即可,
若有保密需求,則用.OBJ 檔代替,例如:觸控軟件包是提供.OBJ 型式
xxxx.INC 程序檔若有需要參考其它軟件包的參數或名稱或功能時,需將該軟件包
的外部參考檔(.AEX 或.CEX 檔)加到.INC 檔內
xxxx.CEX 此軟件包提供給其它軟件包參考的參考檔(C 語言型式)
xxxx.AEX 此軟件包提供給其它軟件包參考的參考檔(匯編型式)
除了具備上述的檔案外,為方便管理未來持續增加的軟件包,必需將這些檔案放置在
相同的資料夾內,且資料夾名稱需和上述檔案的主檔名相同,例如下圖所示
資料夾名稱 資料夾內含檔案
檔案命名(資料夾名稱)越是貼近實際功能描述,越能讓使用者一看就能大致明白
軟件包的功能是什麼、版別是多少以及適用在哪裡!
2.2 觸控軟件包介紹
2.2.1 功能介紹
觸摸鍵硬件控制
設定相關的暫存器;觸摸信號的取樣時間及觸摸鍵的掃描順序
Page 4 of 19
20190424 V501
觸摸信號取樣及濾波
從每組觸摸硬件的第一個鍵同時開始掃描,在預設的時間長度內取得一次觸摸
鍵的信號,接著掃描第二鍵;第三鍵;第四鍵;再回到第一鍵,依此順序循環
不斷讀取觸摸鍵信號,取得信號後,再判斷每次信號間的差異,取出信號的峰
值及平均值,再將峰值信號以移動平均法處理後,可得到二組穩定的信號,並
以穩定的峰值為主要信號,平均值為次要信號來判斷按鍵的觸發邏輯及信號受
干擾程度。
開機平衡
上電後,以二分逼近法的方式,調整內部平衡電容,直到與外部環境(雜散)
電容一致後,即為平衡,可使抗電壓波動性能達到最佳的效果。
按鍵邏輯判斷
依照預設的閥值參數,來判斷觸摸鍵按下及鬆開的邏輯,另外按下的條件有分
兩種:一是所有按下的鍵都承認,二是只承認變量最大的鍵,且不能超過或等
於四個鍵,否則所有按鍵均不承認。
去抖判斷
觸摸鍵壓下或鬆掉的信號必需維持(超過或低於閥值)多久的時間才承認
按鍵態狀的判斷!
電源干擾判斷
利用濾波功能所得到的峰值(波峰和波谷),將這兩組值相互比對,正常情況下,
此兩組值幾乎相等,一旦電源上出現信號較強的干擾源時,此兩組值會開始產
生差距,軟件會判斷當差距到達一定的程度時,視為電源干擾,檢測到有干擾
後,會依參數的設定值,決定是否要關閉按鍵的輸出,避免誤觸發。
按鍵操作時間判斷
判斷觸摸鍵持續按住的時間是否超過參數設定的時間,若超過則立即清除該鍵的
狀態,變成無按鍵!
省電功能處理
無省電功能,如有省電功能需求請更換其它有省電功能的觸摸庫。
自動環境校正
依參數所設定的時間在沒按鍵的態狀下對環境做校正,校正方法採逼近法,將參
考信號逼近實際環境信號,另外也可設定成在有按鍵的狀態下也會動態校正參考
值,以維持穩度的觸發條件
平衡狀態維持
當一段時間內都沒有任何按鍵觸發時,會重複檢查平衡態狀,若檢查到任一鍵有
不平衡的現象時,會重新啟動開機平衡的功能。
Page 5 of 19
20190424 V501
2.2.2 佔用資源
IC
ROM
RAM
Stack
Interrupt
Other
BS83A02C
91%( total 1K )
BS83B04C
49%( total 2K )
65%(Total 96bytes)
(060H-09FH)
71%(Total 128bytes)
(080H-0DCH)
53%(Total 288bytes)
4
4
BS83B08C
52%( total 2K )
Bank0 36%(060H-09BH)
4
BS83B12C
67%( total 2K )
BS83B16C
69%( total 2K )
Bank1 75%(080H-0E0H)
42%(Total 512bytes)
Bank0 30%(080H-0A7H)
Bank1 65%(080H-0D4H)
Bank2 75%(080H-0E0H)
56%(Total 512bytes)
Bank0 39%(080H-0B2H)
Bank1 87%(080H-0F0H)
Bank2 100%(080H-0FFH)
79%(Total 512bytes)
Bank0 72%(080H-0B2H)
4
4
BS83B24C
51%( total 3K )
Bank1 93%(080H-0F8H)
4
Bank2 75%(080H-0E0H)
Bank3 75%(080H-0E0H)
85%(Total 768bytes)
Bank0 44%(080H-0B9H)
Bank1 93%(080H-0F8H)
BS83C40C
51%( total 4K )
Bank2 100%(080H-0FFH)
4
Bank3 100%(080H-0FFH)
Bank4 100%(080H-0FFH)
Bank5 75%(080H-0E0H)
53%(Total 288bytes)
BS84B08C
35%( total 3K )
Bank0 21%(080H-0A3H)
4
BS84C12C
28%( total 4K )
Bank1 93%(080H-0F8H)
42%(Total 512bytes)
Bank0 30%(080H-0A7H)
Bank1 65%(080H-0D4H)
Bank2 75%(080H-0E0H)
40%(Total 384bytes)
BS86B08C
26%( total 4K )
Bank0 27%(080H-0A3H)
4
Bank1 93%(080H-0F8H)
Time Base
MP1;IAR1;
Touch Key
MP0 ;IAR0
Time Base
MP1;IAR1;
Touch Key
MP0 ;IAR0
Time Base
Touch Key
MP1;IAR1;
MP0 ;IAR0
MP1;IAR1;
Time Base
MP0 ;IAR0
Touch Key
MP1;IAR1;
Time Base
MP0 ;IAR0
Touch Key
MP1;IAR1;
MP0 ;IAR0
Time Base
Touch Key
MP1;IAR1;
MP0 ;IAR0
Time Base
Touch Key
Time Base
Touch Key
MP1;IAR1;
MP0 ;IAR0
MP1;IAR1;
Time Base
MP0 ;IAR0
Touch Key
4
Time Base
Touch Key
MP1L;IAR1;
MP0 ;IAR0
BS86D12C 14%( total 8K )
42%(Total 512bytes)
Bank0 30%(080H-0A7H)
4
Time Base
MP1L;IAR1;
Touch Key
MP0 ;IAR0
Page 6 of 19
20190424 V501
Bank1 65%(080H-0D4H)
Bank2 70%(080H-0E0H)
44%(Total 768bytes)
Bank0 34%(080H-0ACH)
BS86D20C
16%( total 4K )
Bank1 78%(080H-0E4H)
4
Bank2 93%(080H-0F8H)
Bank3 62%(080H-0D0H)
42%(Total 512bytes)
Bank0 30%(080H-0A7H)
Bank1 65%(080H-0D4H)
Bank2 70%(080H-0E0H)
36%(Total 768bytes)
Bank0 32%(080H-0A9H)
Bank1 87%(080H-0F0H)
Bank2 100%(080H-0FFH)
72%(Total 128bytes)
(080H-0DDH)
BS86DH12C 14%( total 8K )
BS86E16C
7%( total 16K )
BS45F5930
48%( total 2K )
MP1L;IAR1;
MP0 ;IAR0
Time Base 0
Touch Key
MP1L;IAR1;
Time Base
MP0 ;IAR0
Touch Key
MP1L;IAR1;
Time Base 0
MP0 ;IAR0
Touch Key
Time Base
MP1;IAR1;
Touch Key
MP0 ;IAR0
4
4
4
*V501 庫在使用過程需要特別注意:
1、在執行 Touch Key 中斷子程序時會響應其它的中斷(多用一層堆棧),因此在使用
堆棧只有 4 層的 IC 時, USER_PROGRAM 中只使用 1 層堆棧(防止堆棧溢出)。
2、在執行用戶中斷程序時 Touch Key 中斷不會響應,在執行完用戶中斷程序后才會響
應,因此 Touch Key 中斷不會影響客戶中斷程序的功能。
Page 7 of 19
20190424 V501
2.2.3參數介紹
2.2.3.1參數列表
參數
功能
數值範圍
建議值
DebounceTimes
0~15
AutoCalibrationPeriod 自動校準時間設定 0~15
HighSensitive
按鍵去抖設定
高感度設定
2~5
4~8
0
0=關閉 ; 1=開啟
MaximumKeyHoldTime 按鍵最長反應時間 0~15
1~3
FastResponse
--
--
--
AutoFrequencyHopping 自動跳頻設定
0=關閉 ; 1=開啟 1
OneKeyActive
單鍵輸出設定
0=關閉 ; 1=開啟 視應用功能設定
PowerSave
--
--
--
NoiseProtect
干擾保護設定
0=關閉 ; 1=開啓 0
MovingCalibration
MainFreqSelect
Key Threshold
動態校正設定
0=正常校正
1=動態校正
觸摸振蕩頻率選擇 0=3M 和 7M
1=3M 和 11M
2=1M 和 3M
10~64(十進制)
觸發閥值
1
默認選擇 3M 和 11M
*以上參數均放在 TKS_GLOBE_VARIES.INC 內 ,可手動修改參數值
2.2.3.2參數說明
DebounceTimes
設定去抖次數(值越大,按鍵反應越慢)以 10mS 為單位
(判斷_SCAN_CYCLEF 標誌位)計 l 數一次,每階增加 10 mS。當
DebounceTimes=0 時時間最短,為 40mS-50mS。
AutoCalibrationPeriod
設定校正時間,以 80mS 為單位, 0=80 mS ; 1=160 mS……15=1280 mS 當設
定的校正時間一到,且無按鍵時,即校正一次環境(更新參考值)。
HighSensitive
設定感度高低
設為 0 時: 一般感度。
設為 1 時: 高感度。
MaximumKeyHoldTime
設定最長動作時間,以 4 秒為單位,計算最長動作時間限制
0=關閉此功能;1=4 秒……15=60 秒。
Page 8 of 19
20190424 V501