📄 adc.c
字号:
//#include "DSP28_Device.h"
/*#include "DSP28_Adc.h"
interrupt void adc_isr(void);
//全局变量定义:
Uint16 LoopCount = 5;
Uint16 Count=1;
float V[100]={0,0,0,0,0,0,0,0};
void main (void)
{
//初始化系统控制寄存器 、PLL、看门狗和时钟
InitSysCtrl();
//时钟初始化HSPCLK=SYSCLKOUT/6=75MHz
EALLOW;
SysCtrlRegs.HISPCP.all=0x0;
EDIS;
//GPIO设置
InitGpio();
//初始化PIE相量表
//禁止和清除所有CPU中断
DINT;
IER=0x0000;
IFR=0x0000;
InitPieCtrl();
InitPieVectTable();
//初始化外设模块
InitAdc();
//重新分配中断向量
EALLOW;
PieVectTable.ADCINT=&adc_isr;
EDIS;
//使能PIE中的ADCINT中断
PieCtrl.PIEIER1.bit.INTx6=1;
//使能CPU中断
IER|=M_INT1; //使能全局中断INT1
//使能全局中断和高优先级适时调试功能
EINT; //使能全局中断INTM
ERTM; //使能全局适时调试中断DBGM
AdcRegs.MAX_CONV.all=0x0000;//设置SEQ1的1转换
AdcRegs.CHSELSEQ1.bit.CONV00=0x0A;//设置ADCINB0作为SEQ1的第一个转换
AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1=1;//使能EVASOC启动SEQ1
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1=1;//使能SEQ1中断
//配置时间管理器EVA
EvaRegs.GPTCONA.bit.T1STAT=1;
EvaRegs.T1CNT=0x0000;
//EvaRegs.T1CMPR=0x0010;//设置T1比较值
// EvaRegs.T1CMPR=0x0080;
EvaRegs.T1PR=0x00FF;//设置周期寄存器
EvaRegs.GPTCONA.bit.T1TOADC=2;//通用定时器启动ADC,使能事件管理器A的EVASOC
EvaRegs.T1CON.all=0x1042;//使能定时器1比较(递增计数模式)
//bit.T1TOADC
//等待ADC中断
while (1)
{
LoopCount++;
}
}
interrupt void adc_isr(void)
{
V[Count]=AdcRegs.RESULT1*3.0/65520;
if(Count==99)
{
Count=0;
}
else Count++;
//重新初始化下一个ADC排序
AdcRegs.ADCTRL2.bit.RST_SEQ1=1; //复位SEQ1
AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR=1; //清除INT SEQ1
PieCtrl.PIEACK.bit.ACK1=1; //响应中断//
return;
}*/
void main()
{
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -