工具/软件:Code Composer Studio
您好!
我一直在使用 NORTOS 中的 PWM0 Driverlib 示例和 CCS Studio 通过 CC1310F128的 PWM 生成可变频率发生器。 到目前为止、我只能使用 PWM 产生很多噪声的频率、我可以在频谱分析仪中看到谐波的振幅。 在40%的恒定占空比下、我具有以下特性:-
频率指数数组-
const volatile int freqArray_son[]={16、17、18、19、20、23、26、21、35、15、22、27、18、 31、29、14、26、16、 21、20、27、28、15、 22、12、35、24、33、 17、27、19、21、26、 32、12、18、13、34、 33、31};
我有一个乘法因子- 172。 因此、我必须生成具有40个不同频率的音调[等于乘法因子* freqArray_soni[i]、每个频率的序列间隔为40ms。 因此它应该像:-
40ms 为16*172Hz,40ms 为17*172...... 到31*172,40毫秒
这是我的 PWM 函数:-
void pwm2 (int freq)
{
PWM_Handle pwm2 =空;
PWM_PARAMS 参数;
/*以微秒为单位的周期和占空比*/
uint16_t pwmPeriod = freq;
/*调用驱动程序初始化函数。 *
PWM_init();
PWM_PARAMS_INIT (params);
params.dutyUnits = PWM_Duty_US;
params.dutyValue = 40;
params.periodUnits = PWM_PERIOD_Hz;
params.periodValue = pwmPeriod;
pwm2 = PWM_OPEN (Board_PWM0、params);
PWM_START (pwm2);
usleep (40000);
PWM_STOP (pwm2);
PWM_CLOSE (pwm2);
}
在我的主线程中、我将调用如下函数:-
for (i=0;i<41;i++)
{
pwm2 (172*(freqArray_son[i]));
}
如果我要生成可变频率、我的 PWM 功能是否正确? 问题是、当我播放这个频率阵列时、在关闭并停止 PWM 后切换到另一个频率之前、扬声器会产生奇怪的咔嗒声、我认为这是我无法获得精确输出的原因。 在这方面的任何帮助都将不胜感激。
谢谢、此致