⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 利用TMS320F2810DSP的PWM 进行D/A转换程序
💻 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 + -