您好;
我现在使用 的是 SimpleLink CC3220 SDK 2.30.00.05 (2018年9月17日)
CCS v8.2.0和 FreeRTOS v10.0.0 即使我产生1kHz 正弦信号、也会产生1-2Hz 噪声。
旧版本没有此噪声
SDK 1.60.00.04 (2018年1月1日)
CCS v7.2.0和 FreeRTOS v9.0.0
可能会发生变化的情况。 有人可以提供帮助
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好;
我现在使用 的是 SimpleLink CC3220 SDK 2.30.00.05 (2018年9月17日)
CCS v8.2.0和 FreeRTOS v10.0.0 即使我产生1kHz 正弦信号、也会产生1-2Hz 噪声。
旧版本没有此噪声
SDK 1.60.00.04 (2018年1月1日)
CCS v7.2.0和 FreeRTOS v9.0.0
可能会发生变化的情况。 有人可以提供帮助
您好;
我使用以下代码来了解问题。
尽管 PWM 和计时器频率相同。 我看到了一个示波器相移。
当我在旧 SDK 中尝试相同的代码时、freaks 相同、没有相移。
我怀疑驱动程序代码中存在错误。 我在摄像头上记录了示波器信号。
如果您想查看附件中的链接
空 timerArrangePwmDuty (Timer_handle myHandle1)
{
pwmFlag=1;
GPIO_TOGGLE (Board_BAT_CTRL);
}
void pwmtest (void){
PWM_Handle pwm1 =空;
PWM_Params 参数1;
Timer_handle timer0;
Timer_Params 参数;
PWM_init();
PWM_PARAMS_INIT (¶ms1);
params1.idleLevel = PWM_IDLE_LOW;
params1.dutyUnits = PWM_Duty_counts;
params1.dutyValue = 1800;
params1.periodUnits = PWM_PERIOD_US;
params1.periodValue = 45;
pwm1 = PWM_open (Board_PWM0、¶ms1);
占空比= 1800;
PWM_setDuty (pwm1、Duty);
PWM_START (pwm1);
timer_init();
Timer_Params_init (¶ms);
params.period = 45;
Params.periodUnits = Timer_Period_US;
params.timerMode = Timer_Continuous_callback;
params.timerCallback = timerArrangePwmDuty;
timer0 = Timer_open (Board_Timer1、params);
Timer_start (timer0);
while (1)
{
if (pwmFlag){
pwmFlag=0;
}
}
}
非常感谢您的回复
你好。 我的系统在使用旧 SDK 时工作正常。 使用 SDK 更新时声音已断开。
在我的测试结果中、我看到 PWM 周期与定时器周期不同。 计时器和 PWM 均为45uSN。
我检查了 TI 驱动程序代码。 我看到以下差异: 橙色新绿色旧驱动程序代码。 PWMTimerCC32XX.c
当我安装旧的驱动程序库时、我发现错误有所改善。
我的新问题是如何在新的 TI 库中修复和编辑此更改。 如何编译。
PWMTimerCC32XX.c
/*
*==== getPeriodCounts ====
*
静态 uint32_t getPeriodCounts (PWM_PERIOD_Units 周期单位、
uint32_t 周期值)
{
uint32_t 周期= 0;
ClockP_FreqHz 频率;
ClockP_getCpuFreq (&freq);
开关(周期单位){
案例 PWM_PERIOD_Counts:
Period = periodValue;
中断;
案例 PWM_PERIOD_Hz:
if (periodValue && periodValue <= freq.lo){
周期=(freq.lo / periodValue)-1;
}
中断;
案例 PWM_PERIOD_US:
周期=(periodValue *(freq.lo/1000000))-1;==>周期= periodValue *(freq.lo/1000000);
中断;
默认值:
/*不受支持的期间单位返回无效的期间*/
周期= PWM_INVALID_VALUE;
}
返回(期间);
}