|
stm8S208的主頻率fcpu=16MHZ ,也就是1秒鐘執(zhí)行16M條指令。如果輸出PWM脈沖頻率為100KHZ左右,也就是1/100K=10us執(zhí)行一次update中斷,那么在這個中斷里只能執(zhí)行10us*16M/s=10*10^(-6)*16*(10^3)*(10^3)=160條指令。是不是有點少了,在中斷里和在中斷之間直接最多只能執(zhí)行160條指令。實在是滿足不了程序需要。所以把PWM脈沖頻率設(shè)置應(yīng)合理,否則會導(dǎo)致死機。
ARR_VALUE數(shù)值設(shè)定:計數(shù)器頻率,是CPU經(jīng)過分頻器之后的頻率,作為產(chǎn)生PWM脈沖頻率的輸入頻率。假設(shè)從0計數(shù)到N之后,又從0開始計算。設(shè)定PWM脈沖的輸出比較值為N/2,那么當(dāng)計數(shù)器數(shù)值小于N/2時,輸出低電平;大于等于N/2時,輸出高電平。那么計數(shù)器的N個周期對應(yīng)1個PWM脈沖周期。
設(shè)定計數(shù)器頻率為f ,PWM脈沖頻率為fpulse ,ARR_VALUE=f /fpulse 。
|
|