打印

PWM波形输出

[复制链接]
1642|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
beiwaroad|  楼主 | 2012-10-27 20:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//
//      TMDX ALPHA RELEASE
//      Intended for product evaluation purposes
//
//###########################################################################
//
// FILE:
DSP28_Example.c

//
// TITLE:
DSP28 CPU_Timer example program.

//
//###########################################################################
//
//  Ver | dd mmm yyyy | Who  | Description of changes
// =====|=============|======|===============================================
//  0.55| 06 May 2002 | S.S. | EzDSP Alpha Release
//  0.57| 27 May 2002 | L.H. | No change
//###########################################################################

// Step 0.  Include required header files
         // DSP28_Device.h: device specific definitions #include statements for
         // all of the peripheral .h definition files.
         // DSP28_Example.h is specific for the given example.  

#include "DSP28_Device.h"
void Init_Port(void);//系统外部引脚初始化
void Init_Time1(void);//通用定时器1初始化
void Init_Time3(void); //通用定时器2初始化
Uint16 temp,temp1;
void main(void)
{

/*初始化系统*/


InitSysCtrl();



/*关中断*/


DINT;


IER = 0x0000;


IFR = 0x0000;




/*初始化PIE控制寄存器*/


InitPieCtrl();




/*初始化PIE矢量表*/


InitPieVectTable();



    Init_Port();//初始化端口

Init_Time1();


Init_Time3();




EINT;


ERTM;



for(;;)


{



}


}
void Init_Port(void)
{

EALLOW;


GpioMuxRegs.GPAMUX.all=0x00ff;      

    GpioMuxRegs.GPBMUX.all=0x00ff;

EDIS;


}




//通用定时器1初始化
void Init_Time1(void)
{
    EvaRegs.T1PR=0x2710;//周期设置计数10000个

EvaRegs.T1CMPR=0x0000;//比较器


EvaRegs.T1CNT=0x0000;//计数器


EvaRegs.T1CON.all=0x1042; //控制器

//
EvaRegs.T2PR=0x0fff;//周期

//
EvaRegs.T2CMPR=0x03C0;//比较器

//
EvaRegs.T2CNT=0x0000;//计数器

//
EvaRegs.T2CON.all=0x1042;//控制器    具体可以看书里控制器具体位是怎么样



EvaRegs.CMPR1=0x0C00;    //设置比较寄存器比较值


EvaRegs.CMPR2=0x3C00;


EvaRegs.CMPR3=0xFC00;


    EvaRegs.ACTR.all=0x0666;//比较方式控制寄存器

EvaRegs.DBTCONA.all=0x0000;//禁止死区


EvaRegs.COMCONA.all=0xA600;//比较控制寄存器

}
//通用定时器3初始化
void Init_Time3(void)
{
    EvbRegs.T3PR=0x2710;//周期

EvbRegs.T3CMPR=0x0000;//比较器


EvbRegs.T3CNT=0x0000;//计数器


EvbRegs.T3CON.all=0x1042; //控制器

//
EvbRegs.T4PR=0x0fff;//周期

//
EvbRegs.T4CMPR=0x3C00;//比较器

//
EvbRegs.T4CNT=0x0000;//计数器

//
EvbRegs.T4CON.all=0x1042; //控制器


    EvbRegs.CMPR4=0x0c00;

EvbRegs.CMPR5=0x3C00;


EvbRegs.CMPR6=0xFC00;


    EvbRegs.ACTRB.all=0x0666;//比较方式控制寄存器

EvbRegs.DBTCONB.all=0x0000;//禁止死区


EvbRegs.COMCONB.all=0xA600; //比较控制寄存器

}

相关帖子

沙发
beiwaroad|  楼主 | 2012-10-27 20:21 | 只看该作者
程序内容为12个pwm输出不同占空比,EVA的六路PWM可以用示波器看到波形,EVB的六路就啥都测不到,求指教究竟有神马原因会导致这样

使用特权

评论回复
板凳
taihezhibanh| | 2012-10-27 20:31 | 只看该作者
外设时钟正常吗

使用特权

评论回复
地板
heibaiyinjiag| | 2012-10-27 20:40 | 只看该作者
编程要仔细,至少明白原理

使用特权

评论回复
5
superman2012| | 2012-10-27 22:43 | 只看该作者
这设置了定时器T1与T3,怎么看占空比呀,不太明白

使用特权

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

本版积分规则

86

主题

964

帖子

2

粉丝