工具/软件:TI-RTOS
大家好、我使用 TI-RTOS 示例代码来生成 PWM 输出。
我正在尝试找出可以在 TI-RTOS 中更改 PWM 频率的位置、我最终得到了该函数
在 PWMTiva.C 文件中?
这是更改 PWM 频率的正确方法,以及参数 cmd 和*arg 是什么
我认为必须在某个地方进行更简单的 API 调用、以将频率设置为更高的值。
或者、我能否使用 TivaWare API 设置 PWM 计时器、而这不会破坏 TI-RTOS?
int PWMTiva_control (PWM_Handle handle、unsigned int cmd、void *arg) { unsigned int 密钥; uint32_t 期间; uint32_t PresRegVal; uint8_t 预分频器; PWMTiva_Object *object = handle->object; PWMTiva_HWAttrs const *hwAttrs = handle->hwAttrs; switch (cmd){ 案例 PWMTiva_CMD_CHANGE_GEN_PERIOD: assert_isTrue ((uint32_t *) arg!= NULL、NULL); /*计算 PWM 定时器计数中的周期*/ 期间=(*(uint32_t *) arg)*(object->pwmStatus)->cyclesPerMicroSec; /*确保可以使用当前预分频器生成新周期*/ PWMTiva_calculatePrescalar (period、&presRegVal、&prescalar); if (prescalar!=(object->pwmStatus)->prescalar){ 返回(-1); } 周期/=预分频器; KEY = Hwi_disable(); PWMGenPeriodSet (hwAttrs->baseAddr、hwAttrs->pwmOutput & PWM_GEN_MASK、 期间); /*使用新周期更新 PWM 状态*/ *(object->pwmStatus)->genPeriods + ((hwAttrs->pwmOutput /PWM_out_0)-1)=*(((uint32_t *) arg); Hwi_restore (key); 返回(PWMTiva_CMD_CHANGE_GEN_PERIOD); } /*尚未实施*/ 返回(PWM_STATUS_UNDEFINEDCMD); }
感谢您的帮助、我们不胜感激