2724|1

474

帖子

2

TA的资源

纯净的硅(初级)

楼主
 

LM4F120的PWM [复制链接]

= =..做了做PWM的实验..翻阅StellarisWare的文档直接奔着Chapter 21 PWM那一章去了,写好代码上电,,没反应,,,调试,,发现进入了系统错误中断...
搞了半天才知道原来LM4F120没有PWM模块,还是得用定时器...晕..

  ROM_SysCtlClockSet(SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHZ |           //80mhz
                       SYSCTL_OSC_MAIN);
  
  SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);
  SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
  
  GPIOPinConfigure(GPIO_PF1_T0CCP1);
  GPIOPinTypeTimer(GPIO_PORTF_BASE, GPIO_PIN_1);   //PF1
  
  TimerConfigure(TIMER0_BASE, TIMER_CFG_SPLIT_PAIR|TIMER_CFG_B_PWM);
  TimerLoadSet(TIMER0_BASE, TIMER_B, 50000);
  TimerMatchSet(TIMER0_BASE, TIMER_B, 40000); // PWM
  TimerEnable(TIMER0_BASE, TIMER_B);

一般就是这样启动的了.
但有一个疑问.
输出反相怎么设置?手册上说写TnPWML位设置输出正反相.可是在StellarisWare里面找不到相关的函数啊,,还得自己写寄存器..有大神找到么?

最新回复

//***************************************************************************** // //! Controls the output level. //! //! \param ui32Base is the base address of the timer module. //! \param ui32Timer specifies the timer(s) to adjust; must be one of //! \b TIMER_A, \b TIMER_B, or \b TIMER_BOTH. //! \param bInvert specifies the output level. //! //! This function configures the PWM output level for the specified timer.  If //! the \e bInvert parameter is \b true, then the timer's output is made active //! low; otherwise, it is made active high. //! //! \return None. // //***************************************************************************** void TimerControlLevel(uint32_t ui32Base, uint32_t ui32Timer, bool bInvert) {     //     // Check the arguments.     //     ASSERT(_TimerBaseValid(ui32Base));     ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B) ||            (ui32Timer == TIMER_BOTH));     //     // Set the output levels as requested.     //     ui32Timer &= TIMER_CTL_TAPWML | TIMER_CTL_TBPWML;     HWREG(ui32Base + TIMER_O_CTL) = (bInvert ?                                      (HWREG(ui32Base + TIMER_O_CTL) |                                       ui32Timer) :                                      (HWREG(ui32Base + TIMER_O_CTL) &                                       ~(ui32Timer))); }  详情 回复 发表于 2013-9-3 16:11

点评

//***************************************************************************** // //! Controls the output level. //! //! \\param ui32Base is the base address of the timer module. //! \\param ui  详情 回复 发表于 2013-9-3 16:11
 
点赞 关注

回复
举报

1803

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

回复 楼主zgbkdlm 的帖子

//*****************************************************************************
//
//! Controls the output level.
//!
//! \param ui32Base is the base address of the timer module.
//! \param ui32Timer specifies the timer(s) to adjust; must be one of
//! \b TIMER_A, \b TIMER_B, or \b TIMER_BOTH.
//! \param bInvert specifies the output level.
//!
//! This function configures the PWM output level for the specified timer.  If
//! the \e bInvert parameter is \b true, then the timer's output is made active
//! low; otherwise, it is made active high.
//!
//! \return None.
//
//*****************************************************************************
void
TimerControlLevel(uint32_t ui32Base, uint32_t ui32Timer, bool bInvert)
{
    //
    // Check the arguments.
    //
    ASSERT(_TimerBaseValid(ui32Base));
    ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B) ||
           (ui32Timer == TIMER_BOTH));

    //
    // Set the output levels as requested.
    //
    ui32Timer &= TIMER_CTL_TAPWML | TIMER_CTL_TBPWML;
    HWREG(ui32Base + TIMER_O_CTL) = (bInvert ?
                                     (HWREG(ui32Base + TIMER_O_CTL) |
                                      ui32Timer) :
                                     (HWREG(ui32Base + TIMER_O_CTL) &
                                      ~(ui32Timer)));
}
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表