📄 main.c
字号:
#include "DSP281x_Device.h"
void ConfigureGpio(void);
void InitSystem(void);
void main(void)
{
float k,d[5]={0.5,0.5,0.5,0.5,0.5}; //占空比和阀门开度
int i;
InitSystem();
ConfigureGpio();
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
EvaRegs.GPTCONA.bit.TCMPOE=1; //由定时器1/定时器2的逻辑来驱动T1PWM1/T2PWM2
EvaRegs.GPTCONA.bit.T1PIN=1; //将通用定时器1的比较输出设置成低电平有效
EvaRegs.T1CON.all=0x1042; //分频系数1
while(1)
{
{
for(i=0;i<5;i++)
k=0.8*d[i]+0.18;
EvaRegs.T1PR=1000;
EvaRegs.T1CMPR=(int)EvaRegs.T1PR*k;
}
}
}
void InitSystem(void)
{
EALLOW;
SysCtrlRegs.WDCR=0x00E8;//禁止看门狗模块
SysCtrlRegs.PLLCR.bit.DIV=10;//将CPU的PLL倍频系数设为5
SysCtrlRegs.HISPCP.all=0x0; //将高速时钟的预定标器设置成除1模式
SysCtrlRegs.LOSPCP.all=0x2; //将低速时钟的预定标器设置成除4模式
SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;//使能EVA模块
SysCtrlRegs.PCLKCR.bit.EVBENCLK=0;//禁止EVB模块
SysCtrlRegs.PCLKCR.bit.SCIAENCLK=0;//使能SCIA模块
SysCtrlRegs.PCLKCR.bit.SCIBENCLK=0;//禁止SCIB模块
SysCtrlRegs.PCLKCR.bit.MCBSPENCLK=0;//禁止MCBSP模块
SysCtrlRegs.PCLKCR.bit.SPIENCLK=0;//禁止SPI模块
SysCtrlRegs.PCLKCR.bit.ECANENCLK=0;//禁止ECAN模块
SysCtrlRegs.PCLKCR.bit.ADCENCLK=0;//使能ADCA模块
EDIS;
}
void ConfigureGpio(void)
{
EALLOW;
GpioMuxRegs.GPAMUX.all=0X0000;//EVA PWM 1-6 pins
GpioMuxRegs.GPAMUX.bit.T1PWM_GPIOA6=1;//将GPIO口中的A6脚配置成外设功能
GpioMuxRegs.GPBMUX.all=0X0000;//EVB PWM 7-12 pins
GpioMuxRegs.GPDMUX.all=0X0000;//GPIOD配置为通用IO口
GpioMuxRegs.GPEMUX.all=0X0000;//GPIOE配置为通用IO口
GpioMuxRegs.GPFMUX.all=0X0000;//GPIOF4配置为通用IO口
GpioMuxRegs.GPGMUX.all=0X0000;//GPIOG配置为通用IO口
GpioMuxRegs.GPADIR.all=0X0000;//A 为输入口,其他为出入口
GpioMuxRegs.GPBDIR.all=0X0008;//B口设置为输入口 GPIOB3为输出口
EDIS;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -