<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于Atmel QTouch的ATmega48感應的按鍵設計

          基于Atmel QTouch的ATmega48感應的按鍵設計

          作者: 時間:2013-11-12 來源:網(wǎng)絡 收藏
          4 函數(shù)庫安裝與軟件配置
            要把單片機的I/O口作為感應按鍵輸入口來使用,首先需要安裝函數(shù)庫__Libraries,目前比較新的函數(shù)庫版本是4.3。安裝完畢后,需要將與單片機對應的庫文件加載到工程中。公司的集成開發(fā)環(huán)境AVR Studio提供了便捷的設置,新建一個工程后,可在Project→Configuration Options→Libraries界面中添加函數(shù)庫鏈接文件。
            其次,需要對I/O口進行配置。在工程配置(Project→Configuration Options→Custom Options)界面設置相應的宏定義參數(shù)即可,如圖4所示。
          基于Atmel QTouch的ATmega48感應的按鍵設計
          圖4 AVR Studio工程配置界面
            D_QTOUCH_:需要使用函數(shù)庫。
            DSNSK=C和DSNS=C:表示將 PC口設置為感應按鍵口。
            DQT_NUM_CHANNELS=4:表示最大可用通道數(shù)量。
            DQT_DELAY_CYCLES=1:表示采樣電容充放電周期時間。
            另外,在應用系統(tǒng)源程序中需要加入庫函數(shù)的頭文件。代碼如下:
            #include "touch_api.h"
          5 系統(tǒng)應用
            應用流程如圖5所示。在系統(tǒng)初始化之后,首先調(diào)用config_sensors()函數(shù)將需要的I/O口配置成感應按鍵的采樣口,并對各個感應按鍵的各個狀態(tài)進行初始化。然后是設置感應參數(shù),這些參數(shù)包括按鍵校準閾值、正向漂移值、負向漂移值、最大連續(xù)感應時間等[3]。最后,在應用系統(tǒng)的主程序中,需要周期地調(diào)用庫函數(shù)qt_measuer_channels()對感應信號進行測量,并檢測按鍵的狀態(tài)。
          基于Atmel QTouch的ATmega48感應的按鍵設計
          圖5 QTouch應用流程
            需要注意的是,感應按鍵采集使用了系統(tǒng)的一個定時器中斷,因此,應用系統(tǒng)中的中斷程序會對其造成一定的影響。這就要求在按鍵感應的過程中,應用系統(tǒng)的中斷服務程序的處理時間越短越好。在電容感應工作的時候,中斷服務程序處理時間不應該超過1 ms,否則將嚴重影響感應按鍵的靈敏度,甚至會導致感應按鍵失靈[4]。
            應用系統(tǒng)程序如下:
          int main( void ){
            init_system();/*系統(tǒng)初始化*/
            config_sensors();/*將I/O口配置成感應按鍵*/
            qt_init_sensing();/*初始化感應傳感器*/
            qt_set_parameters();/*感應參數(shù)設置*/
            init_timer_isr();/*用于感應按鍵的定時器設置*/
            qt_filter_callback = 0;/*濾波參數(shù)選擇*/
            __enable_interrupt();/*使能定時器中斷*//*應用程序主循環(huán) */
            while (1) {
              if( time_to_measure_touch ) {
                time_to_measure_touch = 0u; /*繼續(xù)下一個采集周期*/
                qt_measure_sensors( current_time_ms_touch );/*感應檢測 */
              }
              KeyBuff = (qt_measure_data.qt_touch_status.sensor_states[0]);/*獲取感應按鍵狀態(tài)*/
              ……/*系統(tǒng)應用程序*/
            }
          }
          結(jié)語
            基于 QTouch技術的嵌入式感應按鍵設計,簡化了設計難度,降低了系統(tǒng)的應用成本,節(jié)省了印刷電路板的尺寸空間,系統(tǒng)應用穩(wěn)定,可靈活應用于各類電子產(chǎn)品中。
          上一頁 1 2 下一頁

          關鍵詞: Atmel QTouch ATmega48

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();