固定占空比PWM波形输出程序
- 格式:doc
- 大小:24.00 KB
- 文档页数:2
DevEmuRegs.H0RAMDFT = 0x0300;
SysCtrlRegs.WDCR= 0x0068;
SysCtrlRegs.PLLCR = 0xA;
for(i= 0; i< 5000; i++){}
SysCtrlRegs.HISPCP.all = 0x0001;
GpioMuxRegs.GPAMUX.bit.PWM1_GPIOA0=1;
GpioMuxRegs.GPAMUX.bit.PWM2_GPIOA1=1; GpioMuxRegs.GPAMUX.bit.PWM3_GPIOA2=1;
GpioMuxRegs.GPAMUX.bit.PWM4_GPIOA3=1; GpioMuxRegs.GPAMUX.bit.PWM5_GPIOA4=1; GpioMuxRegs.GPBMUX.bit.T3PWM_GPIOB6=1;
{
InitSysCtrl();
DINT;
IER = 0x0000;
IFR = 0x0000;
InitPieCtrl();
InitPieVectTable();
InitGpio();
InitEv();
EvaRegs.T1CON.bit.TENABLE=1; EvaRegs.T2CON.bit.TENABLE=1;
GpioMuxRegs.GPBMUX.bit.T4PWM_GPIOB7=1;
GpioMuxRegs.GPBMUX.bit.PWM7_GPIOB0=1;
GpioMuxRegs.GPBMUX.bit.PWM8_GPIOB1=1;
GpioMuxRegs.GPBMUX.bit.PWM9_GPIOB2=1;
GpioMuxRegs.GPBMUX.bit.PWM10_GPIOB3=1;
SysCtrlRegs.LOSPCP.all = 0x0002;
SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;
SysCtrlRegs.PCLKCR.bit.EVBENCLK=1;
EDIS;
}
void KickDog(void)
{
EALLOW;
SysCtrlRegs.WDKEY = 0x0055;
EvaRegs.DBTCONA.bit.DBT=10; EvaRegs.DBTCONA.bit.EDBT1=1; EvaRegs.DBTCONA.bit.EDBT2=1; EvaRegs.DBTCONA.bit.EDBT3=1; EvaRegs.DBTCONA.bit.DBTPS=4,
EvaRegs.ACTR.all=0x0999;
EvaRegs.T2CON.bit.TMODE=1; EvaRegs.T2CON.bit.TPS=1; EvaRegs.T2CON.bit.TENABLE=0; EvaRegs.T2CON.bit.TCLKS10=0; EvaRegs.T2CON.bit.TECMPR=1;
EvaRegs.GPTCONA.bit.TCOMPOE=1; EvaRegs.GPTCONA.bit.T1PIN=1; EvaRegs.GPTCONA.bit.T2PIN=2;
SysCtrlRegs.WDKEY = 0x00AA;
EDIS;
}
程序二:Gpio口初始化
#include "DSP28_Device.h"
void InitGpio(void)
{
EALLOW GpioMuxRegs.GPAMUX.bit.T1PWM_GPIOA6=1;
GpioMuxRegs.GPAMUX.bit.T2PWM_GPIOA7=1;
EvaRegs.CMPR1=7499; EvaRegs.CMPR2=7499; EvaRegs.CMPR3=7499;
EvbRegs.T3CON.bit.TMODE=1; EvbRegs.T3CON.bit.TPS=1; EvbRegs.T3CON.bit.TENABLE=0; EvbRegs.T3CON.bit.TCLKS10=0; EvbRegs.T3CON.bit.TECMPR=1;
EvaRegs.T1PR=7499; EvaRegs.T1CMPR=3750; EvaRegs.T1CNT=0;
EvaRegs.T2PR=7499; EvaRegs.T2CMPR=3750; EvaRegs.T2CNT=0;
CONA.bit.CENABLE=1; CONA.bit.FCOMPOE=1; CONA.bit.CLD=2;
GpioMuxRegs.GPBMUX.bit.PWM11_GPIOB4=1;
GpioMuxRegs.GPBMUX.bit.PWM12_GPIOB5=1;
EDIS;
}
程序四:主程序
#include "DSP28_Device.h"
#include "DSP28_Globalprototypes.h"
void main(void)
#include "DSP28_Device.h"
void InitEv(void)
{
EvaRegs.T1CON.bit.TMODE=1; EvaRegs.T1CON.bit.TPS=1;
EvaRegs.T1CON.bit.TENABLE=0; EvaRegs.T1CON.bit.TCLKS10=0; EvaRegs.T1CON.bit.TECMPR=1;
程序一:系统初试化程序
#include "DSP28_Device.h"
void InitSysCtrl(void)
{
Uint16 i;
EALLOW;
DevEmuRegs.M0RAMDFT = 0x0300;
DevEmuRegs.M1RAMDFT = 0x0300;
DevEmuRegs.L0RAMDFT = 0x0300;
EvbRegs.T3CON.bit.TENABLE=1; EvbRegs.T4CON.bit.TENABLE=1;
while(1){ }
}
程序说明
本程序实现的是在PWM1,PWM3,PWM5三个口输出占空比为50%,频率为5KHZ的对称方波。本程序参照书上固定占空比PWM波形产生程序改写而成。
程序三:EV初始化