您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > 合泰触摸IC----BS8XXXX软件包使用说明
BSI-20111216_V302Page1of16BS8XXXX軟件包使用說明BSI-20111216_V302Page2of16版本異動版本日期BS83B08BS83B12BS83B16BS85B12BS85C20說明2010/12/06V101V101V101XX提供客戶第一版2011/02/22V203V203V203XX修正濾波的計算式.2011/04/06V204V204V204XX加快V203版按鍵反應速度2011/05/27V300V300V300V300V300正式版,可搭配開發工具HXT;E-LINK使用2011/12/12V302V302V302V302V302加強抗干擾能力;touchIP同時掃描BSI-20111216_V302Page3of16軟件包檔案說明:zTKS_BS8XXXX_MAIN.ASM主程序檔,處理系統開機時的初始化工作及載入軟件包所需的參數。BSI-20111216_V302Page4of16BSI-20111216_V302Page5of16zTKS_BS8XXXX_LIBRARY.OBJ“觸控"功能軟件包,負責"觸摸鍵"信號取樣;濾波;按鍵邏輯處理。zBS8XXXX.INCBS8XXXX系統寄存器定義檔。zTKS_HEAD.INC軟件包檔頭宣告,用來連結軟件包參數設定及可供User調用的函數;資料及標誌;並將外部程式加入此檔內,建立所有檔案的連結關係。BSI-20111216_V302Page6of16zHXT_REFERENCE.INC“觸控"功能的參數設定檔(感度;取樣時間…等),可由HXT_Editor產生或手動調整。zUART_TEST.ASMUART傳輸程序,透過e-linktouch可將"觸控"信號上傳至PC端(單向傳輸)。zHXT_IIC.ASMIIC傳輸程序,透過e-linktouch可將"觸控"信號上傳至PC端或由PC下載參數至MCU端(双向傳輸)。BSI-20111216_V302Page7of16zUSER_PROGRAM.ASM使用者的程序編輯檔.z建议所有的功能和寄存器定义写在USER_PROGRAM.ASM文件中。BSI-20111216_V302Page8of16軟件包佔用資源:ICROMRAMStackInterruptOtherBS83B08約1.1KBank0:060H~0CCH3TimeBaseTouchIPSIMMP1;IAR1;MP0;IAR0BS83B12約1.1KBank0:060H~081HBank1:080H~0F7H3TimeBaseTouchIPSIMMP1;IAR1;MP0;IAR0BS83B16約1.1KBank0:060H~0A5HBank1:080H~0FFH3TimeBaseTouchIPSIMMP1;IAR1;MP0;IAR0BS85B12約1.1KBank0:080H~0A1HBank1:080H~0F7H3TimeBaseTouchIPSIMMP1;IAR1;MP0;IAR0BS85C20約1.1KBank0:080H~0AAHBank1:080H~0CFHBank2:080H~0F7H3TimebaseTouchIPSIMMP1;IAR1;MP0;IAR0註:1.使用IIC_HXT.ASM時才會佔用SIMinterrupt2.中斷程序若使用到MP1/MP0則需將MP1/MP0的值暫存起來(PUSH)!出中斷時,再恢複MP1/MP0的值(POP)!3.RAM的使用方式,需用"DB"的方式宣告,若超過可用空間,IDE3000會顯示錯誤訊息,盡量避免使用絶對位置宣告!4.Library使用3層stack,User調用時,需注意stack層數。5.TimeBaseINT,由Library占用,User不能用且User使用TimerINT時,TMR0Cbit5(T0S)必需為"0"!(請參考SPEC,關於Timer;TimeBase說明)。6.SIM系指串列傳輸(IIC/SPI)硬體架構簡稱7.TouchIP系指TouchSensor硬體架構簡稱。BSI-20111216_V302Page9of16軟件包參考資源:Data_RAM(byte):_DATA_BUF[0]~_DATA_BUF[7]軟件包所使用的資料暫存器,User可用來做資料交換使用但不可儲存資料_GLOBE_VARIES存放參數的RAM(HXT_REFERENCE.INC所定義的參數)_KEY_REF按鍵"參考值"寄存器_KEY_FREQ按鍵"環境值"寄存器_TKS_RCC_REG內部振盪器電容值的寄存器_CAL_TIME_BASE環境校正時間計數器._KEY_STATUS按鍵邏輯狀態記錄器_KEY_TIMER按鍵計時器_TKS_TIME_BASE軟件包計時器_KEY_IO_SELIO或Touchkey設定記錄器BSI-20111216_V302Page10of16FLAG(bit):_SCAN_CYCLEF所有按鍵掃描掃一個週期標誌位._ANY_KEY_PRESSF任一鍵按下標誌位_TKS_ACTIVEF軟件包完成初始化,並開始運行標誌位._TKS_125MSF125MS計時器標誌位._TKS_500MSF500MS計時器標誌位._FORCE_CALIBRATEF強制軟件包,對環境做重校正標誌位.註:除了_DATA_BUF[0]~_DATA_BUF[7]及_FORCE_CALIBRATEF可做"寫"的動作外,其餘都只能做"讀"的動作。BSI-20111216_V302Page11of16軟件包內建函數:_TKS_INITIAL功能:軟件包初始化。輸入:無輸出:無Stack:1說明:主程序初始化時,需調用此程序,避免Library功能不穩定。_SCAN_TOUCH_KEY功能:軟件包主要功能,負責TouchKey的信號取樣;演算法處理及內部計時。輸入:無輸出:無Stack:3說明:此程序為軟件包主要功能,一定要調用,否則“TouchKey"功能無法實現。_SET_SYS_CLK功能:設定系統頻率(HIRC)值。輸入:ACC,0=8MHZ;1=12MHZ;2=16MHZ;Other=8MHZ輸出:無Stack:1說明:系統開機默認為8MHZ。_SET_KEY_ATTR功能:設定keyinputPIN屬性為TouchKey或IO輸入:_DATA_BUF[0];DATA_BUF[1];_DATA_BUF[2]_DATA_BUF[0]=KEY8(MSB)~KEY1(LSB)_DATA_BUF[1]=KEY16(MSB)~KEY9(LSB)_DATA_BUF[2]=KEY20(MSB)~KEY17(MSB)相對應的bit為1=Touchkey;0=一般I/O。輸出:無Stack:1說明:1.系統開機時默認為I/O。2.開機初始化,要調用此程序,確實設定Touchkey或I/O。BSI-20111216_V302Page12of16_GET_KEY_BITMAP功能:讀取"TouchKey"狀態;並以bitmap的方式輸出,相對應的bit為0=放開;1=壓下。輸入:無輸出:_DATA_BUF[0];_DATA_BUF[1];_DATA_BUF[2]_DATA_BUF[0]=KEY8(MSB)~KEY1(LSB)。_DATA_BUF[1]=KEY16(MSB)~KEY9(LSB)。_DATA_BUF[2]=KEY20(MSB)~KEY17(MSB)Stack:1說明:無_GET_ENV_VALUE功能:讀取按鍵"環璄"值。輸入:ACC=0(第1KEY);1(第2KEY)……….19(第20KEY)輸出:_DATA_BUF[1];_DATA_BUF[0]Stack:1說明:1筆環境值佔兩個byte_GET_REF_VALUE功能:讀取按鍵"參考"值。輸入:ACC=0(第1KEY);1(第2KEY)……….19(第20KEY)輸出:_DATA_BUF[1];_DATA_BUF[0]Stack:1說明:1筆參考值佔兩個byte。_GET_RCC_VALUE功能:讀取內部參考振盪器電容值。輸入:ACC=0(第1KEY);1(第2KEY)……….19(第20KEY)輸出:_DATA_BUF[0]Stack:1說明:無_GET_LIB_VER功能:讀取軟件包版本資訊。輸入:無輸出:無Stack:1說明:BSI-20111216_V302Page13of16_GET_KEY_AMOUMT功能:讀取軟件包掃描按鍵的總數。輸入:無輸出:無Stack:1說明:無BSI-20111216_V302Page14of16軟件包使用步驟:Step1新增一個專案資料夾,並將軟件包所有檔案存放至專案資料夾內。Step2執行IDE3000,新增一個專案,並將檔案路徑指定至專案資料夾(存放軟件包檔案處)。Step3在IDE3000\Project\edit操作選單下將TKS_BSXXXX_MAIN_ASM;TKS_BS83XXXX_LIBRARY.OBJ加入目前的專案內。Step4修改TKS_HEAD.INC內的參數,例如:Touchkey屬性設定;系統頻率設定......等。Step5調整參數及靈敏度(HXT_REFERENCE.INC)。Step7執行IDE3000編譯功能,確定程序語法正確。Step6在USER_PROGRAM.ASM開始設計使用者所需的程序BSI-20111216_V302Page15of16其它補充事項:1.Touchkey反應時間,依Debounce次數的設定而所有不同,一般而言,一個key信號取樣時間約20ms,加上程式處理(邏輯判斷)時間約2~5ms左右,因此完成一個鍵的判斷約25ms(最快),若debounce=3,則理想反應時間最快為25X3=75ms左右,可反應一次按鍵狀態。註:實際應用狀況會因內建的濾波功能處理效果及感度偏低造成反應下降一些,但基本上仍可達到每秒6~8下的反應速度。2.軟件包中的_SCAN_TOUCH_KEY函數,以常駐的形態,於整個程序中運行,必需在每次的主程序回圈都調用,才能正常判斷TouchKey狀態。(程序中尽可能快调用_SCAN_TOUCH_KEY函數函数,长时间才调用一次可以导致按键速度变慢,建议5ms以内去调用)3.使用軟件包時,盡可能避免,太久(2毫秒以上)的單一回圈的delay行為,否則會影響軟件包的掃描時序,降低反應速度。註:太久的delay行為,並非不能用,實際應用時,反應效果可被接受,即可使用。4.在TKS_BS8XXXX_MAIN.ASM中,以Call的方式調用User_program;所以堆棧已用掉一層。5.HXT_REFERENCE.INC參數解釋名稱功能數值範圍KeyDebounce去抖次數範圍0~7CalibrateTime自動校準時間範圍0~15SamplingTime取樣時間範圍0~30=128;1=256;2=512;3=1024MaximumOnTime最長輸出時間範圍0~150=關閉1=4秒;15=60秒AutoRSelect自動跳頻0=關閉;1=開啟OneKeyActive單鍵輸出0=關閉;1=開啟PowerOnBalance按鍵邏輯設定0=不更新參考值;1=更新參考值ReBalance重新平衡0=關閉;1=開啟KeyThreshold按鍵觸發門檻值範圍8~255BSI-20111216_V302Page16of16HXT_REFERENCE.INC参数补充说明:KeyDebounce:去抖次數,參數範圍0~7.當設置0,1,去鬥次數默認约為2(正误差1)次,按鍵最快回應時間約(25-50)ms.參數2時為3次。按鍵回應時間約(50-75)ms,每Debounce增加1,回應時間約增加25ms,Debounce=7時,按鍵回應時間約(25-50)ms+6x25ms=(175-200)ms.松鍵時間也為(175-200)ms.CalibrateTime:無按鍵成立自動校準時間,參數範圍
本文标题:合泰触摸IC----BS8XXXX软件包使用说明
链接地址:https://www.777doc.com/doc-7206613 .html