m3紅外驅動

最底層與硬件打交道的驅動: 1 硬件初始化 (初始化 控制寄存器, 時鐘控制器,中斷寄存器--當fifo不爲空就產生中斷等) 2 軟件初始化  爲句柄付初值.

3 中斷處理函數 當有數據需要decode 就會調用 ir_decode,ir_decode 調用ir_state_change. 裏面檢測脈衝4個狀態來確定開始和結束.當接收完一個包,就解析出碼

cmd= (pinstance->packet & 0xff00) >> 8;

not_cmd= (~(pinstance->packet)  )&& 0x00ff);

上層通過調用底層驅動接口爲用戶封裝了庫函數scf_irrx_init  完成軟硬件初始化 scf_irrx_term scf_irrx_save_context scf_irrx_restore_contex scf_irrx_set_config scf_irrx_isr: 完成中斷處理 該函數被註冊爲24號中斷的中斷處理函數,當按遙控器,該函數被調用,該函書獲取相關寄存器的直,如果fifo中有數據就調用ir_decode,然後調用回掉函數處理.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章