打印

DSPF2812管脚T1PWM_GPIOA6不能输出PWM的问题

[复制链接]
411|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
尤彼卡|  楼主 | 2016-6-30 20:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序如下:void main(void) {        InitSysCtrl();
        DINT;
        IER=0x0000;
        IFR=0x0000;
        InitPieCtrl();
        InitPieVectTable();
        InitGpio();
        //InitEv();
        Init_Ev();
        EINT;//使能全局中断
        ERTM;//使能实时中断
        int k=0;
        while(1)
        {
        }
        
}
void InitSysCtrl(void)
{
   Uint16 i;
   EALLOW;
   SysCtrlRegs.WDCR=0x0068;//禁止看门狗
   SysCtrlRegs.PLLCR=0xA;//系统时钟120MHz
   for(i=0;i++;i<5000)
   {}//延时,使PLL初始化成功
   SysCtrlRegs.HISPCP.all=0x0000;//高速时钟120MHz
   SysCtrlRegs.LOSPCP.all=0x0002;//低速时钟30MHz
   SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;
   EDIS;
}void InitGpio(void)
{
           EALLOW;

   GpioMuxRegs.GPAMUX.bit.T1PWM_GPIOA6=1;
           
           EDIS;
}

void InitEv(void)
{
        //设置定时器控制器TICON
    EvaRegs.T1CON.bit.TMODE=2;//连续增模式
    EvaRegs.T1CON.bit.TPS=2;//EVA时钟频率37.5MHz
    EvaRegs.T1CON.bit.TENABLE=0;//暂时禁止定时器,等全部设定完毕,在开启定时器
    EvaRegs.T1CON.bit.TCLKS10=0;//定时器使用内部时钟
    //EvaRegs.T1CON.bit.TCLD10=2;//如果给定时器赋值,则立即载入
    EvaRegs.T1CON.bit.TECMPR=1;//使能定时器的比较操作
    //设置GPTCONA
    EvaRegs.GPTCONA.bit.TCOMPOE=1;//定时器比较输出T1PW或T2PWM由各自的定时器比较逻辑驱动
    EvaRegs.GPTCONA.bit.T1PIN=1;//低电平有效
  //  设置周期寄存器
    EvaRegs.T1PR=29999;
    EvaRegs.T1CMPR=12000;
    EvaRegs.T1CNT=0;
    EvaRegs.T1CON.bit.TENABLE=1;//启动定时器操作,开始产生PWM
}

相关帖子

沙发
Stannis| | 2016-6-30 20:29 | 只看该作者
初始化EV模块的函数名,到底是什么。InitEv还是Init_Ev,和调用的不一样啊。

使用特权

评论回复
板凳
Rangar| | 2016-6-30 20:45 | 只看该作者
是不是中断没有使能完全,只有使能全局中断是不够的(EINT;//使能全局中断ERTM;//使能实时中断)

使用特权

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

本版积分规则

116

主题

774

帖子

1

粉丝