Version 1, last updated by fellong at Dec 01 02:37 2008 UTC
實驗(十)蜂鳴器發聲
/// ===============================================
/// 蜂嗚器模組
/// -----------------------------------------------
/// 功能 : 蜂嗚器單音發聲控制
/// -----------------------------------------------
/// Input Pins :
/// NONE
/// Output Pins :
/// BZ equ pi.5
/// ===============================================
void Initial_BZ( void ); /// 初始化 IO
void BZ_Beep( void ); /// Buzzer 發聲
這個實驗可以看到,同樣的硬體裝置也能依系統需求而開發不同的應用模組出來。
一個簡單的 BEEP 裝置,或是一個能發不同音頻聲的裝置或甚至一個語音輸出裝置~?
/// ===============================================
/// 音效輸出模組
/// -----------------------------------------------
/// 功能 : 音效輸出控制,產生不同頻率的音頻輸出
/// -----------------------------------------------
/// Input Pins :
/// NONE
/// Output Pins :
/// BZ equ pi.5
/// ===============================================
extern word set_sound_duty; /// 聲音脈波周期=1/發聲頻率,控制模組會依據此設定值產生音頻
void Initial_Sound( void ); /// 初始化 IO
void Sound_Control( void ); /// 音效發聲 Loop,需計算 sample 周期來校準音頻
這個音頻產生模組的控制方式需要特別注意的就是,主系統的叫用頻率會影響聲音的輸出頻率,這在一般的模組或許只是稍微延時一下而無大礙,但是在這個模組就會有非常大的影響,人對聲音的敏銳性非常的高,一點點雜音或不同音頻就可能會察覺。
所以主系統的呼叫迴圈,最好要固定周期(不會飄),這樣才能調整出正確的聲音頻率出來。
當然,若是單獨用一個核心來處理音效,就完全沒這個問題。