云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > AM335x普通定时器配置PWM输出

AM335x普通定时器配置PWM输出

  • 62 次阅读
  • 3 次下载
  • 2025/7/14 13:50:16

1、AM335X 裸机下,配置TIMER4输出PWM,输出IO为GPIO_19,即XDMA_EVENT_INTR0,主要配置代码如下:

#include \ #include \ #include \ #include \ #include \ #include \ #include \ #include \ #include \ #include \

/******************************************************************************

** INTERNAL MACRO DEFINITIONS

*******************************************************************************/

#define DMTIMER_INSTANCE (SOC_DMTIMER_4_REGS) #define TIMER_INITIAL_COUNT (0xFFFFC000) #define TIMER_RLD_COUNT (0xFFFFC000) #define TIMER_DUTY_COUNT

int main(void) {

/*将A15(即XDMA_EVENT_INTR0)引脚配置成 MODE2,即为TIMER4的PWM输出模式*/ HWREG(SOC_CONTROL_REGS + CONTROL_CONF_XDMA_EVENT_INTR(0)) = ((0x00000020u) + CONTROL_CONF_MUXMODE(2));

/* This function will enable clocks for the DMTimer2 instance */ DMTimer4ModuleClkConfig();

/* Perform the necessary configurations for DMTimer */ DMTimerSetUp();

/* Start the DMTimer */

DMTimerEnable(DMTIMER_INSTANCE);

while(1); } /*

** Setup the timer for one-shot and compare mode.

(0xFFFFE000)

*/

static void DMTimerSetUp(void) {

/* Load the counter with the initial count value */ DMTimerCounterSet(DMTIMER_INSTANCE, TIMER_INITIAL_COUNT);

/* Load the load register with the reload count value */ DMTimerReloadSet(DMTIMER_INSTANCE, TIMER_RLD_COUNT);

/*Set the match register with the compare value */ DMTimerCompareSet(DMTIMER_INSTANCE, TIMER_DUTY_COUNT);

/* Configure the DMTimer for Auto-reload and compare mode */

DMTimerModeConfigure(DMTIMER_INSTANCE,0x000018C2);//DMTIMER_AUTORLD_NOCMP_ENABLE); }

在dmtimer.c中修改的地方

void DMTimerModeConfigure(unsigned int baseAdd, unsigned int timerMode) {

/* Wait for previous write to complete */

DMTimerWaitForWrite(DMTIMER_WRITE_POST_TCLR, baseAdd);

/* Clear the AR and CE field of TCLR */

HWREG(baseAdd + DMTIMER_TCLR) &= ~(DMTIMER_TCLR_AR | DMTIMER_TCLR_CE | DMTIMER_TCLR_TRG);// ~(DMTIMER_TCLR_AR | DMTIMER_TCLR_CE);

/* Wait for previous write to complete */

DMTimerWaitForWrite(DMTIMER_WRITE_POST_TCLR, baseAdd);

/* Set the timer mode in TCLR register */

HWREG(baseAdd + DMTIMER_TCLR) |= timerMode;//(timerMode & (DMTIMER_TCLR_AR |

// DMTIMER_TCLR_CE | // DMTIMER_TCLR_TRG)); }

2、需要注意的地方

XDMA_EVENT_INTR0在MODE2模式下为TIMER4的PWM输出,配置方式 HWREG(SOC_CONTROL_REGS + CONTROL_CONF_XDMA_EVENT_INTR(0)) = ((0x00000020u) + CONTROL_CONF_MUXMODE(2));

3、计数方式需要注意

#define TIMER_INITIAL_COUNT (0xFFFFC000) #define TIMER_RLD_COUNT (0xFFFFC000)

#define TIMER_DUTY_COUNT (0xFFFFE000)

计数从0xFFFFC000开始,当计数到0xFFFFE000时,产生边沿跳变,计数到0xFFFFFFFF时,重新装载计数初始值

搜索更多关于: AM335x普通定时器配置PWM输出 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

1、AM335X 裸机下,配置TIMER4输出PWM,输出IO为GPIO_19,即XDMA_EVENT_INTR0,主要配置代码如下: #include \ #include \ #include \ #include \ #include \ #include \ #include \ #include \ #include \ #include \ /****************************************************************************** ** INTERNAL MACRO DEFINITIONS ***********************************************************

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com