📄 网络adc____002.txt
字号:
下面是AD转换,Ev周期中断程序,有问题。可是我找不到,大家帮帮忙!
#include "DSP28_Device.h"
float a1[16];
unsigned int a2=0;
float adclo=0.0;
interrupt void ad(void);
void main(void)
{
InitSysCtrl();
EALLOW;
SysCtrlRegs.HISPCP.all=0x3;
EDIS;
DINT;
IER = 0x0000;
IFR = 0x0000;
InitPieCtrl();
InitPieVectTable();
EALLOW; // This is needed to write to EALLOW protected registers
PieVectTable.ADCINT=&ad;
EDIS; // This is needed to disable write to EALLOW protected registers
InitAdc();
InitEv();
EALLOW;
PieCtrl.PIEIER1.bit.INTx6=1;
EDIS;
// Enable INT14 which is connected to CPU-Timer 2:
IER |= M_INT1;
//KickDog();--
// Enable global Interrupts and higher priority real-time debug events:
EINT; // Enable Global interrupt INTM
ERTM; // Enable Global realtime interrupt DBGM
AdcRegs.MAX_CONV.bit.MAX_CONV=0x0033;
AdcRegs.ADCTRL3.bit.SMODE_SEL=1;
AdcRegs.CHSELSEQ1.bit.CONV00=0;
AdcRegs.CHSELSEQ1.bit.CONV01=1;
AdcRegs.CHSELSEQ1.bit.CONV02=2;
AdcRegs.CHSELSEQ1.bit.CONV03=3;
AdcRegs.CHSELSEQ3.bit.CONV08=4;
AdcRegs.CHSELSEQ3.bit.CONV09=5;
AdcRegs.CHSELSEQ3.bit.CONV10=6;
AdcRegs.CHSELSEQ3.bit.CONV11=7;
AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1=1;
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1=1;
EALLOW;
EvaRegs.GPTCONA.bit.T1TOADC=2;
EvaRegs.GPTCONA.bit.T1STAT=1;
EvaRegs.T1CON.all=0x10c1;
EDIS;
EvaRegs.T1PR=0x00ff;
for(;;)
{
KickDog();
}
interrupt void ad(void)
{
IFR=0x0000;
PieCtrl.PIEIFR1.all = 0;
PieCtrl.PIEACK.all=0xffff;
a2++;
a1[0]=((float)AdcRegs.RESULT0)*3.0/65520.0+adclo;
a1[1]=((float)AdcRegs.RESULT1)*3.0/65520.0+adclo;
a1[2]=((float)AdcRegs.RESULT2)*3.0/65520.0+adclo;
a1[3]=((float)AdcRegs.RESULT3)*3.0/65520.0+adclo;
a1[4]=((float)AdcRegs.RESULT4)*3.0/65520.0+adclo;
a1[5]=((float)AdcRegs.RESULT5)*3.0/65520.0+adclo;
a1[6]=((float)AdcRegs.RESULT6)*3.0/65520.0+adclo;
a1[7]=((float)AdcRegs.RESULT7)*3.0/65520.0+adclo;
a1[8]=((float)AdcRegs.RESULT8)*3.0/65520.0+adclo;
a1[9]=((float)AdcRegs.RESULT9)*3.0/65520.0+adclo;
a1[10]=((float)AdcRegs.RESULT10)*3.0/65520.0+adclo;
a1[11]=((float)AdcRegs.RESULT11)*3.0/65520.0+adclo;
a1[12]=((float)AdcRegs.RESULT12)*3.0/65520.0+adclo;
a1[13]=((float)AdcRegs.RESULT13)*3.0/65520.0+adclo;
a1[14]=((float)AdcRegs.RESULT14)*3.0/65520.0+adclo;
a1[15]=((float)AdcRegs.RESULT15)*3.0/65520.0+adclo;
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; // Reset SEQ1
AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR = 1; // Clear INT SEQ1 bit
AdcRegs.ADCTRL2.bit.EVB_SOC_SEQ2=1;
AdcRegs.ADCTRL2.bit.INT_ENB_SEQ2=1;
EvbRegs.GPTCONB.bit.T3TOADC=2;
EvbRegs.GPTCONB.bit.T3STAT=1;
EvbRegs.T3CON.all=0x10c1;
EvbRegs.T3PR=0x00ff;
}
}
转载请注明出自DSP交流网 DSP学习第一论坛 DSP技术应用与推广平台 DSP开发服务平台 http://www.hellodsp.com/bbs/,本贴地址:http://www.hellodsp.com/bbs/viewthread.php?tid=5313
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -