打印

关于LM3S328的PWM实验,求解

[复制链接]
1605|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shmily53|  楼主 | 2013-7-30 19:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<lm3sxxx.h>
#include<timer.h>
unsigned long TheSysClock;
void clockInit()
{
         SysCtlLDOSet(SYSCTL_LDO_2_50V); //  设置LDO输出电压
                SysCtlClockSet(SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |SYSCTL_XTAL_6MHZ | SYSCTL_SYSDIV_1);       
   TheSysClock = SysCtlClockGet();  
}

void timerInitPWM()
{
           SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER1);          //  使能Timer模块
           SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);           //  使能CCP2所在的GPIO端口
     GPIOPinTypeTimer(GPIO_PORTB_BASE, GPIO_PIN_1);           //配置定时器管脚供外设使用
           SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);           //  使能CCP3所在的GPIO端口
     GPIOPinTypeTimer(GPIO_PORTC_BASE, GPIO_PIN_6);          //配置定时器管脚供外设使用
           SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM);              //使能PWM
           SysCtlPWMClockSet(SYSCTL_PWMDIV_1 );                   //设置PWM时钟
       
           TimerConfigure(TIMER1_BASE, TIMER_CFG_16_BIT_PAIR |    //  配置Timer为双16位PWM
                                TIMER_CFG_A_PWM |
                                TIMER_CFG_B_PWM);

    TimerControlLevel(TIMER1_BASE, TIMER_BOTH, true);      //  控制PWM输出反相
    TimerLoadSet(TIMER1_BASE, TIMER_BOTH, 6000);           //  设置TimerBoth初值
    TimerMatchSet(TIMER1_BASE, TIMER_A, 3000);             //  设置TimerA的PWM匹配值
    TimerMatchSet(TIMER1_BASE, TIMER_B, 2000);             //  设置TimerB的PWM匹配值
    TimerEnable(TIMER1_BASE, TIMER_BOTH);                  //  使能Timer计数,PWM开始输出
         
}
int main()
{
          clockInit();                                            //  时钟初始化:晶振,6MHz
    timerInitPWM();                                         //  Timer的PWM功能初始化
   while(1);
}
这是关于LM3S328的PWM输出实验,找不出任何问题,为什么软件仿真和protues仿真都没有任何反应。求大神指教

相关帖子

沙发
1988020566| | 2013-7-30 23:35 | 只看该作者
时钟使能了?

使用特权

评论回复
板凳
1988020566| | 2013-7-30 23:36 | 只看该作者
io口也需配置为pwm的功能吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

7

帖子

0

粉丝