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.
工具/软件:Code Composer Studio
我已初始化 PWM。 现在、我要将数据从信号处理发送到 PWM。 或 EDMA 来实现的。 有没有简单的方法?
在这里、我的代码:
#include #include #include #include #include #include "ti/board/board.h" #include "ti/board_cfg.h" #include "math.h" #include #include #include #include #include #include #include #include #include #include "zepoc.h" volatile float Duty; #define APP_EHRPWM_INT (32U) volatile uint16_t status; int zeigr_k empfänger Ω; extern float zeroOUT[samplehil/2]; /模块时钟是 PWMSS 工作的频率*/ #define MODULE_CLK (100000000)/*100MHz*/ #define PWM_BASE_ADDRESS (CSL_PWM_3_CFG_REGS) #define PWM_BASE_Address1 (CSL_PWM_5_TB_REGS) #define TBCLK_FREQ MODE_CLK_CLK/#define ADDRV/#define 0x000* #define ADDR_CL0* (#define ADDR_CL0*/#define ADDR_CL0*#define ADDR_Tbits)/#define ADDR_COUNT_COUNT*(#define 0x000*#define ADDR_CL0*(#define ADDR_T_BYT_TRYT_BYTK_#define ADQ*) /* SHDWAMODE 和 SHDWBMODE 位*/ #define CC_SHADOW (0x0) #define AQ_NO_ACTION (0x0) #define AQ_LOW (0x1) #define AQ_HIGH (0x2) #define AQ_TOGGLE (0x3) #define OVER WQ_WQ_DISAL_DISABLED (0x0000)#define CLMEP_RACK_REFOD (0x0000)#define CLK_CLK_CLK_CLK_CLK_RACK_MODULT);#define CLK_CLK_CLK_CLK_CLK*(0x32)#define int pointer=0; cSL_EpwmAqActionCfg_t aqctrla ={AQ_NO_action、AQ_HIGH、AQ_LOW、AQ_NO_action、AQ_NO_action、 AQ_NO_ACTION}; CSL_EpwmAqActionCfg_t bqctrla ={AQ_NO_ACTION、AQ_LOW、AQ_HIGH、AQ_NO_ACTION、AQ_NO_ACTION、 AQ_NO_ACTION}; //设置 PWM 模块一次性配置的函数*/ void PWM_init() { /* PINMUX PWM*/ /*使用预分频器进行时基时钟配置*/ CSL_epwmTbbaseClkCfg (CSL_PWM_3_CFG_regs、TBCLK_wQ、MODULE_TRF_TBCLK_REQ_TBCLK_CFG_WQ_TBCLK_REGK 、MOD_BREQ_TREM_TBQ_TBQ_TBQ_TBQ_TimebQ_TBQ_TBQ_TimebQ_CFG_Time_Timer_CLK_ MODULE_CLK); /*清除相位和方向设置为向上计数*/CSL_epwmTbSetSyncOutMode (CSL_PWM_3_CFG_regs、CSL_EPWM_TB_SYNC_OUT_EVT_CNT_EQ_ZERO); CSL_epwmTG_REGEnable (CSL_PWM_5_CCEP_5_EPWM_OUT_PWM_OUTPW_0_CK_CONTROL_CST_EPWM_ACT_ACT_ACT_AQ_EPWM_OUT);CSL_CST_PWM_OUT_PWM_OUTPUT_CFG_W_CFG_OPT_EP_EP_EP_AD_EP_EP_EP_EP_AD_EP_EP_EP_AD_EP_EP_EP_AD_EP_EP_EP_EP_AD_EP_EP_EP_EP_EP__AD_EP__EP_EP_EP_EP_EP_EP_EP_EP_EP_EP_EP_AD_EP_EP_ &bqctrla); CSL_epwmTbPwmFreqCfg (CSL_PWM_3_CFG_regs、TBCLK_FREQ、PWM_FREQ、TB_COUNT_UP、 TB_Immediate); CSL_epwmTbPwmFreqCfg (CSL_PWM_5_CFG_regs、TBCLK_FREQ、PWM_FREQ、TB_COUNT_UP、 TB_立即); CSL_epwmHighResolutionCfg (CSL_PWM_3_CFG_regs、CSL_ePWM_HR_DELAY_BUS_SEL_CMPAHR、CSL_ePWM_HR_DELAY_EDGE_CTRL_FALLING); CSL_epwmHighResolutionCfg (CSL_PWM_5_CMPAHR、CSL_RELET_EPWM_TRFLE_CFG_REGION);CSL_EPWM_CL_CL_CL_TRFLE_TRFLE_CL_CFG_REGATE /void 启用 PWM_3中断以生成零计时器信号来中断 ePWM_INT3_REV*/ CSL_epwmEtEnable (CSL_PWM_3_CFG_regs); CSL_epwmEtCfg (CSL_PWM_3_CFG_regs);CSL_EPWM_INST_PWM_3* (CSRT_EP_INT_EPWFP_ST_EP_EP_INST_EP_ST_EP_EP_EP_EXT_REG_ST_EXT_REGPT_EXT_RESP= 0);*(CST_PWM_EP_PWM_EP_EP_INST_EP_EP_EP_EP_INST_EP_EP_EP_EP_INST_EP_EP_EP_EP_INST_INST_EP_EP_EP_EP_EP_INST_EP_EP_EP_EP_INST_EP_EP_EP_EP_INST_EP_EP_EP_EP_INST_EP_EP_EP_EP_EP_EP_EP_ST_EP_EP_EP_ST_EP_ OVER_WRITE_SHAD_DISABLE_DISABLED); CSL_epwmHrLoadCmpAHrValue (CSL_PWM_3_CFG_regs、highresval、CSL_EPWM_HR_REG_ACT_LOAD_CNT_ZRO_PULSE); CSL_epwmCounterComparatorCfg (CSL_PWM_5_CFG_A、ePWM、CCP_int) CC_SHADOW、CC_CTR_ZERO、OVER_WRITE_SHADOK_DISABLED); CSL_epwmHrLoadCmpAHrValue (CSL_PWM_5_CFG_regs、highresval、CSL_EPWM_HR_REG_ACT_LOAD_CNT_ZRO_PULSE); return; }
Yordan、您好、感谢您的快速回复。 具有96kHz 频率的 PWM 已经可以工作。 之后、我需要一个与 PWM 同步的中断。 我是否可以使用 processors.wiki.ti.com/.../Configuring_Interrupts_on_Keystone_Devices 章节"为我的中断配置 CorePac 的 INTC"? 或者是否有更优雅的方式?