|
下邊是STC15系列CCP為6位PWM輸出,正弦波計(jì)算占空比的函數(shù)
//CCP為6位PWM輸出
BYTE xdata Sin_Num[256] = {0};
#define STEP ((2.0 * PI) / 64.0)//正弦波采樣步長
#define PWM_DUTY_MIN 0X01
#define PWM_DUTY_MAX 0X3E
void GetReloadNum()
{
int i;
float Value = 0.0,aa = 0.0;
for(i = 0;i < 64;i++)
{
Value = 32.0 * (1 - sin(aa));
Sin_Num[i ] = (unsigned int)Value;
if(Sin_Num[ i] < PWM_DUTY_MIN) Sin_Num[ i] = PWM_DUTY_MIN;
else if(Sin_Num[ i] > PWM_DUTY_MAX) Sin_Num[ i] = PWM_DUTY_MAX;
aa += STEP;
}
}
1.png (29.47 KB, 下載次數(shù): 48)
下載附件
2022-12-19 01:00 上傳
這是輸出的波形,不夠漂亮。
|
|