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

📄 2808adc1.0.c

📁 2808程序
💻 C
字号:
#include "DSP280x_Device.h"     // DSP280x 头文件
#include "DSP280x_Examples.h"   // DSP280x 例子文件

interrupt void adc_isr(void);

// //定义全局变量:
Uint16 LoopCount;
Uint16 ConversionCount;
Uint16 Voltage1[10];
Uint16 Voltage2[10];


main()
{
   InitSysCtrl();//初始化系统

   EALLOW;
   SysCtrlRegs.HISPCP.all = 0x4;  // HSPCLK = SYSCLKOUT/8
   EDIS;
   DINT;      //清断和中断向量表

   InitPieCtrl();

   IER = 0x0000;
   IFR = 0x0000;

   InitPieVectTable();

   EALLOW;  // 开写保护
   PieVectTable.ADCINT = &adc_isr;
   EDIS;    // 关写保护

   InitAdc(); 

   PieCtrlRegs.PIEIER1.bit.INTx6 = 1;      //使能PIE中的ADCINT中断
   IER |= M_INT1; // 使能 CPU 中断 1,使能全部 INT1
   EINT;          // 使能全局实时中断 DBGM
   ERTM;          //使能全局实时中断 DBGM

   LoopCount = 0;//循环计数器清零
   ConversionCount = 0;//当前转化结果数清零

// 配置 ADC
   AdcRegs.ADCMAXCONV.all = 0x0001;       // 设置SEQ1的2个转化通道一转换通道
   AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x3; // 设置SEQ1的 ADCINA3 作为第
   AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x2; // 设置SEQ1的 ADCINA2 作为第二转换通道

   AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 1;// 使能EPWM SOCA启动SEQ1
   AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1;  // 使能 SEQ1 中断 (每次 EOS)

   EPwm1Regs.ETSEL.bit.SOCAEN = 1;        // 使能EPwm1 SOC 去启动 SEQ1
   EPwm1Regs.ETSEL.bit.SOCASEL = 4;       // 使能 SEQ1 中断 (每次 EOS)
   EPwm1Regs.ETPS.bit.SOCAPRD = 1;        // Generate pulse on 1st event
   EPwm1Regs.CMPA.half.CMPA = 0x0080;	  // 设置比较器A的值
   EPwm1Regs.TBPRD = 0xFFFF;              // 设置周期寄存器
   EPwm1Regs.TBCTL.bit.CTRMODE = 0;		  // 计数开始

   for(;;)
   {
      LoopCount++;
   }

}


interrupt void  adc_isr(void)
{

  Voltage1[ConversionCount] = AdcRegs.ADCRESULT0 >>4;//AdcRegs.ADCRESULT0中的值位12位的数
  Voltage2[ConversionCount] = AdcRegs.ADCRESULT1 >>4;

  //  如果已记录了10次转化,则重新开始转换
  if(ConversionCount == 9)
  {
     ConversionCount = 0;
  }
  else ConversionCount++;

  // 重新初始化下一次ADC转换
  AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1;         // 复位 SEQ1
  AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;       // 清 INT SEQ1位
  PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;   // 清中断应答信号,准备接收下一次中断
  return;
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -