1. 程式人生 > 實用技巧 >Select_mic_input(int state)函式分析

Select_mic_input(int state)函式分析

Select_mic_input(int state)函式分析

在這裡插入圖片描述
在這裡插入圖片描述

分析:函式select_mic_input( int state) 的形參state 的值取決於識別到的耳機的值
在這裡插入圖片描述

0:沒有耳機
1:耳機帶MIC
2:耳機不帶MIC
在接下來的條件判斷語句中主要通過位操作來影響CtrlReg ,VolumeCtrlReg ,VolumeADCdigtalReg 這三個值
舉例說明插入的是帶MIC的耳機則,最後CtrlReg =0x14, volumeCtrlReg =0x1f,
VolumeADCdigtalReg =0x1d0
接下來即根據這些值對音訊codec 的暫存器的值進行操作,以插入帶MIC的耳機為例:

1:向0x2e暫存器中寫入CtrlReg的值0x14 (0001 0100)
在這裡插入圖片描述

帶MIC耳機的輸入選擇 IN2L 單端輸入。

向0x2f暫存器中寫入CtrlReg的值0x14 (0001 0100)
在這裡插入圖片描述

帶MIC耳機的輸入選擇 IN2R 單端輸入。

符合原理圖中的設計
在這裡插入圖片描述

2

在這裡插入圖片描述

向0x2c暫存器寫入volumeCtrlReg 的值0x1f 即是設定左聲道的 left input PGA Volume 為
28.3db。
向0x2d暫存器寫入volumeCtrlReg 的值0x1f 即是設定右聲道的 right input PGA Volume 為28.3db。

3
在這裡插入圖片描述

向0x24暫存器總寫入VolumeADCdigtalReg的值 0x1d0

在這裡插入圖片描述

D0 表示設定 ADC digtal Volume 為6 db, 1 表示當向該暫存器的第8位寫入1 的時候ADC
Volume 就可以更新了。
向0x25暫存器總寫入VolumeADCdigtalReg的值 0x1d0 ,的作用也同上。