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.

[参考译文] TMS320F280049C:如何通过引脚输出标准 PWM

Guru**** 2553260 points
Other Parts Discussed in Thread: TMS320F280049C, C2000WARE

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1375235/tms320f280049c-how-to-output-standard-pwm-from-a-pin

器件型号:TMS320F280049C
Thread 中讨论的其他器件: C2000WARE

工具与软件:

您好!

我想熟悉 TMS320F280049C 和 CCS、所以我想控制伺服电机。

但是、即使我在查看示例时尝试编写代码、也无法使其正常工作。

我要做的是使用引脚10的 PWM 信号输出来控制 SG90伺服电机。

我希望占空比为1/10。 伺服电机的 PWM 周期为50Hz。

下面是我拥有的代码:

//############################################################################################################################################################################################
//
//文件:empty_driverlib_main.c
//
//! \addtogroup driver_example_list
//!

空项目示例


//!
//! 此示例是用于 Driverlib 开发的空项目设置。
//!
//
//############################################################################################################################################################################################
//
//
//$Copyright:
//版权所有(C) 2024德州仪器(TI)公司- http://www.ti.com/
//
//以源代码和二进制形式重新分发和使用、无论有无
//修改、但前提是满足以下条件
//已满足:
//
//重新分发源代码必须保留上述版权
//通知、此条件列表和以下免责声明。
//
//以二进制形式重新分发必须复制上述版权
//通知、此条件列表和中的以下免责声明
//随提供的文档和/或其他材料
//分布。
//
//既不是德州仪器(TI)公司的名称、也不是的名称
//其贡献者可用于认可或推广衍生产品
//未经事先书面许可、从本软件中获取。
//
//此软件由版权所有者和贡献者提供
//"按原样"以及任何明示或暗示的保证、包括但不包括
//仅限于对适销性和适用性的暗示保证
//不考虑特定目的。 在任何情况下均不得享有版权
//所有者或贡献者对任何直接、间接、附带、
//特殊、示例性或后果性损害(包括但不包括)
/仅限于采购替代商品或服务;不使用、
//数据或利润;或业务中断)、无论其原因是什么
//责任理论,无论是合同,严格责任,或侵权
//(包括疏忽或其他)以任何方式产生的使用
//此软件、即使被告知此类损坏的可能性。
//$
//############################################################################################################################################################################################

//
//包含的文件
//
#include "driverlib.h"
#include "device.h"
#include "board.h"
#include "c2000ware_libraries.h"

#define EPWM1_FREQ 50UL
#define EPWM1_PERIOD (uint16_t)(DEVICE_SYSCLK_FREQ/(2 * EPWM1_FREQ))


void initEPWM1 (void);
//
// Main (主菜单)
//
void main (void)

//
//初始化器件时钟和外设
//
device_init();

//禁用引脚锁定和启用内部上拉。
//
device_initGPIO();

GPIO_setControllerCore (10、GPIO_CORE_CPU1);
GPIO_setPadConfig (10、GPIO_PIN_TYPE_OD);
GPIO_setPinConfig (GPIO_10_EPWM6_A);

Interrupt_initModule();
interrupt_initVectorTable();
SYSCTL_disablePeripheral (SYSCTL_PERIPH_CLK_TBCLKSYNC);
initEPWM1();
board_init();
EINT;
SYSCTL_enablePeripheral (SYSCTL_PERIPH_CLK_TBCLKSYNC);

for (;;)

}
}
void initEPWM1 (void)

EPWM_setClockPrescaler (EPWM1_BASE、EPWM_CLOCK_DIVIDER_1、EPWM_HSCLOCK_DIVIDER_1);
EPWM_setTimeBasePeriod (EPWM1_BASE、EPWM1_PERIOD);
EPWM_setCounterCompareValue (EPWM1_BASE、EPWM_COUNTER_COMPARE_A、EPWM1_PERIOD/10U);
EPWM_setTimeBaseCounterMode (EPWM1_BASE、EPWM_COUNTER_MODE_UP_DOWN);
EPWM_setTimeBaseCounter (EPWM1_BASE、0U);

}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Daichi Terakado:

    您已经成功配置了预分频器、周期、比较值和计数器模式。  

    您还必须为 ePWM 输出设置动作限定符、以便根据您设置的"Compare"和"Period"值进行更改。 请参阅任何有关动作限定器配置的示例。  

    谢谢。此致、
    Madhava

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的指导。 按照您的建议、我配置了预分频器、周期、比较值和计数器模式。 根据示例为 ePWM 输出设置动作限定符后、我能够通过将引脚编号设置为0来使其正常工作。

    谢谢、此致、Daichi Terakado