Thread 中讨论的其他器件:controlSUITE
工具/软件:Code Composer Studio
您好!
如何将第二个 ADC 通道(同步)添加到 controlSUITE:"2837x_rfft_adc_rt"项目?
感谢你的帮助。
此致、
Amin
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
您好!
如何将第二个 ADC 通道(同步)添加到 controlSUITE:"2837x_rfft_adc_rt"项目?
感谢你的帮助。
此致、
Amin
尊敬的惠特尼:
我进行了所有更改、但 对于第二个通道(ADC B2)中的输入信号、它不接受数据、也不起作用。
main.c :
uint16_t RFFTin1Buff[2*RFFT_SIZE];
uint16_t RFFTin2Buff[2*RFFT_SIZE];//<--- 新建
__interrupt void adcaIsr ()
{
RFFTin1Buff[sampleIndex++]= AdcaResultRegs.ADCRESULT0;
RFFTin2Buff[sampleIndex++]= AdcbResultRegs.ADCRESULT0;//<--- 新
if (sampleIndex ==(RFFT_SIZE - 1))){
sampleIndex = 0;
flagInputReady = 1;
}
AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//清除 INT1标志
AdcbRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//clear INT1 flag//<--- 新
PieCtrlRegs.PIEACX.ALL = PIEACK_Group1;
}
Examples_setup.c :
void FPU_initADCA (void) { EALLOW; //写入配置 AdcaRegs.ADCCTL2.bit.prescale = 6;//将 ADCCLK 分频器设置为/4 AdcbRegs.ADCCTL2.bit.prescale = 6;//set ADCCLK divider to /4//<--- 新 AdcSetMode (ADC_ADCA、ADC_resolution_12位、ADC_SIGNALMODE_SINGLE); AdcSetMode (ADC_ADCB、ADC_Resolution 12位、ADC_SIGNALMODE_SINGLE);//<--- 新 //将脉冲位置设置为早 AdcaRegs.ADCCTL1.bit.INTPULSEPOS = 0; AdcbRegs.ADCCTL1.bit.INTPULSEPOS = 0;//<--- 新 //为 ADC 加电 AdcaRegs.ADCCTL1.bit.ADCPWDNZ = 1; AdcbRegs.ADCCTL1.bit.ADCPWDNZ = 1;//<--- 新 //延迟1ms 以允许 ADC 加电时间 DELAY_US (1000); //选择要转换的通道和转换结束标志 ADCA AdcaRegs.ADCSOC0CTL.bit.CHSEL = 0;//SOC0将转换引脚 A0 AdcaRegs.ADCSOC0CTL.bit.ACQPS = 14;//采样窗口为15个 SYSCLK 周期 AdcaRegs.ADCSOC0CTL.bit.TRIGSEL = 5;// ePWM1 SOCA/C 上的触发 AdcaRegs.ADCINTSEL1N2.bit.INT1SEL = 0;//EOC0被设定为触发 ADCINT1 AdcaRegs.ADCINTSEL1N2.bit.INT1E = 1;//启用 INT1标志 AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//确保 INT1标志被清除 AdcbRegs.ADCSOC0CTL.bit.CHSEL = 2;//SOC0将转换引脚 A0//<--------------- 新 AdcbRegs.ADCSOC0CTL.bit.ACQPS = 14;//采样窗口是15个 SYSCLK 周期//<--------------- 新 AdcbRegs.ADCSOC0CTL.bit.TRIGSEL = 5;//trigger on ePWM1 SOCA/C//<--- 新 AdcbRegs.ADCINTSEL1N2.bit.INT1SEL = 0;//EOC0设置为触发 ADCINT1//<--- 新 AdcbRegs.ADCINTSEL1N2.bit.INT1E = 1;//启用 INT1标志//<--- 新 AdcbRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//确保 INT1标志被清除//<--- 新 EDIS; }
感谢你的帮助。
此致、
Amin
你执行 sampleIndex 的方式看起来是关闭的。 我想您希望执行以下操作:
RFFTin1Buff[sampleIndex]= AdcaResultRegs.ADCRESULT0;
RFFTin2Buff[sampleIndex++]= AdcbResultRegs.ADCRESULT0;
此外、无需为 ADCB 启用中断。 转换应该同时完成、并且您将在同一 ISR 中读取这两个结果。
如果上述修复程序无法解决问题、您能否为我提供更多有关发生什么错误的详细信息? 结果是否错误? 转换是否未触发?
惠特尼