QCC3007 button篇--代码解析
上一篇講了如何通過ADK configuration tool來配置button,這里來看下配置后代碼是如何跑的。
準備工作:
 1.在InitEarlyUserFeatures()函數(shù)下會調(diào)用buttonManagerInit(),進行button管理初始化
 (1)BUTTON_GDATA這個全局變量非常重要,這里不展開說這個結構體,因為后面就會使用到,在那說明更容易理解,但名字要記住喔!
 
 buttonManagerInit()函數(shù)前面幾句就是開辟了結構體空間,并賦予了theSink.task
(2)ButtonsInit()函數(shù)
 主要把BUTTON_GDATA與PIO task和charger task進行連接
 
 (3)bmInitButtonConfig函數(shù)
 這個函數(shù)有4步操作
 
 第一步獲取硬件接口轉(zhuǎn)換列表,保存到BUTTON_GDATA下的button_translation_type_t結構體參數(shù)中,看到下面結構體的定義就很容易與ADK configuration tool的Translation Table關聯(lián)起來了
 
第二步設置按鍵短按長按等時間配置,若沒有設置防抖時間會設置默認
 
 第三步設置button event
 上一篇我們說到ADK configuration tool可以配置總共66個event,這 66個event是分三個保存,每個22個event
 
 bmInitInputCheckMasks函數(shù)遍歷66個event
上面都配置好后,就是在ButtonsMessageHandler()函數(shù)監(jiān)聽MESSAGE_PIO_CHANGED和MESSAGE_CHARGER_CHANGED,如果收到了PIO改變就會調(diào)用ButtonsCheckDetection()–>ButtonsLevelDetect()等函數(shù)來判斷哪個按鍵按下,然后把event發(fā)到system去
總結
以上是生活随笔為你收集整理的QCC3007 button篇--代码解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 让珊瑚虫QQ显出隐身好友
 - 下一篇: 深度linux 2014 下载,Deep