社区导航

 

搜索
查看: 3955|回复: 2

[经验] TIVA C控制器timer的PWM输出

[复制链接]

2

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2016-6-1 18:04 | 显示全部楼层 |阅读模式
最近一个项目用到红外收发,需要调制一个38K的信号,我用的片子是TM4C1231H6PZ,没有PWM模块,就想着试用一下timer的PWM功能,刚开始用了半天没调处来,后来才发现自己做的时候呆逼了,现在把最终代码发出来一下,大家可以看一下别出现我的问题。
查询手册,为了布线方便,我使用的是这个管腿。
QQ截图20160601180107.jpg
使用的为WT4CCP1,由于看芯片手册看的不仔细,我这回最大的问题出在了这个WT,也就是宽定时器,以前都是用的普通定时器,没注意这个W,结果刚开始都是按照普通定时器来初始化的(一脸懵逼)后来才发现,真是悲剧。。。我擦,最后的源代码就是这样了,我经过硬件测试的,大家如果要使用的话,一定要看清是T?CCP?还是WT?CCP?,别和我一样悲剧。。这个CCP0是子定时器A,CCP1是子定时器B,我使用的CCP1,所以就是用timerB。

下面是源代码:

/*  输入的变量sysclock为系统的时钟频率,我使用的是这款芯片的最快频率80M */
void WTimer4Init(const uint32_t sysclock)
{
    ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOH);//使能输出PWM的端口
    SysCtlGPIOAHBEnable(SYSCTL_PERIPH_GPIOH);//该端口正好有AHB,就用上了
    ROM_GPIOPinConfigure(GPIO_PH7_WT4CCP1);//初始化端口特殊功能
    ROM_GPIOPinTypeTimer(GPIO_PORTH_AHB_BASE, GPIO_PIN_7);//初始化此端口受timer控制,CCP功能

    ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_WTIMER4);//使能WTimer4
    ROM_SysCtlPeripheralReset(SYSCTL_PERIPH_WTIMER4);//为了安全,重启一下这个外设
    while(!ROM_SysCtlPeripheralReady(SYSCTL_PERIPH_WTIMER4));//等待外设重启完毕

    ROM_TimerDisable(WTIMER4_BASE, TIMER_B); //配置前停止定时器

    ROM_TimerConfigure(WTIMER4_BASE, TIMER_CFG_SPLIT_PAIR | TIMER_CFG_B_PWM);
    //配置为单定时器模式和timerBPWM模式
  
    ROM_TimerControlLevel(WTIMER4_BASE, TIMER_B, false);//PWM输出正极性
    ROM_TimerControlStall(WTIMER4_BASE, TIMER_B, true);//WTIMER在调试(仿真)时自动停止,这个是为了仿真方便

    ROM_TimerLoadSet(WTIMER4_BASE,TIMER_B, sysclock / 38000);//设定定时值
    ROM_TimerMatchSet(WTIMER4_BASE,TIMER_B,sysclock / 38000 / 2);//设定翻转值

    ROM_TimerEnable(WTIMER4_BASE, TIMER_B);//使能定时器
}

来源:EEWorld 微控制器 MCU板块,转载请附上链接


回复

使用道具 举报

41

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2016-7-13 20:40 | 显示全部楼层
很有收获,谢谢楼主分享


回复

使用道具 举报

2

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2018-1-19 11:55 | 显示全部楼层
楼主,请问下两者区别在哪里?我用wtimer4,配置后侧不带


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /6 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-9-20 05:02 , Processed in 0.145837 second(s), 18 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表