|
#include \"DSP28_Device.h\"
void main(void)
{
/*初始化系统*/
InitSysCtrl();
EALLOW;
//
GpioMuxRegs.GPAMUX.all=0x00FF;
GpioMuxRegs.GPBMUX.all=0x00FF;
EDIS;
/*关中断*/
DINT;
IER = 0x0000;
IFR = 0x0000;
/*初始化PIE控制寄存器*/
InitPieCtrl();
/*初始化PIE矢量表*/
InitPieVectTable();
/*初始化EV*/
EvaRegs.T1PR=0xFFFF;
EvaRegs.T1CMPR=0x3C00;
EvaRegs.T1CNT=0x0000;
//
EvaRegs.T1CON.all=0x1042;//?
//
EvaRegs.GPTCONA.bit.TCOMPOE=1;
EvaRegs.GPTCONA.bit.T1PIN=1;
//
EvaRegs.CMPR1=0x0C00;
//
EvaRegs.ACTR.all=0x0666;
EvaRegs.DBTCONA.all=0x0000;
EvaRegs.COMCONA.all=0xA600;
IER|=M_INT2; ////这个是我加的 ,感觉应该开中断
EINT;
ERTM;
for(; ;
}
//////////////
以上是书上利用 CMP1 产生PWM的程序,利用内部定时器比较产生PWM
实际运行 CMP1管脚 是高电平 不变 而且感觉寄存器的值 跟自己设置的也不相等(在watch window看的)
请教各位 呵呵
|
|