//
// 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; //比较控制寄存器
} |