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.
同样、我正在将项目从 TMS320F28035 MCU 迁移到更新的 TMS320F280039C MCU。 之前、我使用了一个包含 ADC_SOC_Cnf.c"源文件用于 ADC 配置的项目模板。 随着向新 MCU 的过渡、我了解到 SysConfig 可用于转换和调整此类源文件、以便与 TMS320F280039C 兼容、并利用新的 GUI 和 SysConfig 目录结构。 但是、我发现此转换过程的指令不清楚、尤其是在将现有源代码与 SysConfig 生成的配置集成方面。 有人能提供有关如何转换"ADC_SOC_Cnf.c"等现有源文件以通过 SysConfig 与 TMS320F280039C 搭配使用的分步指南吗? 同样、如需了解有关为此目的导航新 GUI 的任何提示、我们将不胜感激。
为了提供背景信息、可以在以下目录下的模板中找到"adc_soc_Cnf.c"源文件: c:\ti\controlSUITE\development_kits\TemplateProjects\DPLibv3_4Template-F2803x
这个问题与我之前 在这里问的这个问题有关 。
此处附加的下方是所述文件的源代码。
//------------------
//文件:adc_soc_CNF.c.c
//
//说明:ADC 配置支持在
//基于转换启动(SOC)的 ADC (3类)(位于 F2802x 和
// F3803x 器件。 独立选择通道、触发器和
//使用 ChSel[]、TrigSel[]和 ACQPS[]的采集窗口。
//
//相关性:假设项目中包含{DeviceName}-usDelay。asm
//版本:3.0
//
//目标:TMS320F2802x (PiccoloA),
// TMS320F2803x (PiccoloB),
//
//函数调用是:
//
// void ADC_SOC_CNF (int ChSel[]、int Trigsel[]、int ACQPS[]、int IntChSel、int 模式)
//
//函数参数定义为:
//---------------
// ChSel[]=通过作为参数传递的通道数组进行的通道选择
// TrigSel[]=触发通道转换的源,
//通过作为参数传递的触发器#数组进行选择
// acqps[]= AcqWidth 是#ADCCLKS 中的 S/H 槽,#数组作为参数传递
// IntChSel =完成时触发 ADC 中断1的通道编号(EOC)
//如果没有通道触发 ADC 中断传递值> 15
// Mode =工作模式:0 =启动/停止模式、需要触发事件
// 1 =连续模式,无需触发
// 2 = CLA 模式、通过自动 CLR INT 标志启动停止模式
//========================================
#include "PeripheralHeaderIndewels.h"
void ADC_SOC_CNF (int ChSel[]、int Trigsel[]、int ACQPS[]、int IntChSel、int 模式)
{
extern void DSP28x_usDelay (UINT32计数);
EALLOW;
AdcRegs.ADCCTL1.bit.ADCREFSEL = 0;
AdcRegs.ADCCTL1.bit.ADCBGPWD = 1;//加电带隙
AdcRegs.ADCCTL1.bit.ADCREFPWD = 1;//加电基准
AdcRegs.ADCCTL1.bit.ADCPWDN = 1;//为 ADC 的其余部分加电
AdcRegs.ADCCTL1.bit.ADCENABLE = 1;//启用 ADC
DSP28x_usDelay (1000);//转换 ADC 通道前的延迟
AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1;
AdcRegs.ADCSOC0CTL.bit.ACQPS = ACQPS[0];
AdcRegs.ADCSOC1CTL.bit.ACQPS = ACQPS[1];
AdcRegs.ADCSOC2CTL.bit.ACQPS = ACQPS[2];
AdcRegs.ADCSOC3CTL.bit.ACQPS = ACQPS[3];
AdcRegs.ADCSOC4CTL.bit.ACQPS = ACQPS[4];
AdcRegs.ADCSOC5CTL.bit.ACQPS = ACQPS[5];
AdcRegs.ADCSOC6CTL.bit.ACQPS = ACQPS[6];
AdcRegs.ADCSOC7CTL.bit.ACQPS = ACQPS[7];
AdcRegs.ADCSOC8CTL.bit.ACQPS = ACQPS[8];
AdcRegs.ADCSOC9CTL.bit.ACQPS = ACQPS[9];
AdcRegs.ADCSOC10CTL.bit.ACQPS = ACQPS[10];
AdcRegs.ADCSOC11CTL.bit.ACQPS = ACQPS[11];
AdcRegs.ADCSOC12CTL.bit.ACQPS = ACQPS[12];
AdcRegs.ADCSOC13CTL.bit.ACQPS = ACQPS[13];
AdcRegs.ADCSOC14CTL.bit.ACQPS = ACQPS[14];
AdcRegs.ADCSOC15CTL.bit.ACQPS = ACQPS[15];
AdcRegs.INTSEL1N2.bit.INT1SEL = IntChSel;// IntChSel 导致 ADCInterrupt 1
if (MODE =0)//开始-停止转换模式
{
AdcRegs.ADCINTFLG.bit.ADCINT1 = 0;//清除 ADCINT1的中断标志
AdcRegs.INTSEL1N2.bit.INT1CONT = 0;//清除 ADCINT1标志以开始一组新的转换
AdcRegs.ADCINTSOCSEL1.all=0x0000;//没有 ADCInterrupt 将触发 SOCx
AdcRegs.ADCINTSOCSEL2.all=0x0000;
}
if (MODE =1)//连续转换模式
{
AdcRegs.INTSEL1N2.bit.INT1CONT = 1;//将 ADCInterrupt 1设置为自动清除
AdcRegs.ADCINTSOCSEL1.all=0xFF;// ADCInterrupt 1将触发 SOCx、TrigSel 被忽略
AdcRegs.ADCINTSOCSEL2.all=0xFF;
}
IF (MODE = 2)// CLA 模式,使用自动 CLR ADC 标志启动停止 ADC
{
AdcRegs.ADCINTFLG.bit.ADCINT1 = 0;//清除 ADCINT1的中断标志
AdcRegs.INTSEL1N2.bit.INT1CONT = 1;//将 ADCInterrupt 1设置为自动清除
AdcRegs.ADCINTSOCSEL1.all=0x0000;//没有 ADCInterrupt 将触发 SOCx
AdcRegs.ADCINTSOCSEL2.all=0x0000;
}
if (IntChSel<15)
AdcRegs.INTSEL1N2.bit.INT1E = 1;//启用 ADC 中断1
否则
AdcRegs.INTSEL1N2.bit.INT1E = 0;//禁用 ADC 中断1
//选择接收 SOCx 时要转换的通道
AdcRegs.ADCSOC0CTL.bit.CHSEL=ChSel[0];
AdcRegs.ADCSOC1CTL.bit.CHSEL=ChSel[1];
AdcRegs.ADCSOC2CTL.bit.CHSEL=ChSel[2];
AdcRegs.ADCSOC3CTL.bit.CHSEL=ChSel[3];
AdcRegs.ADCSOC4CTL.bit.CHSEL=ChSel[4];
AdcRegs.ADCSOC5CTL.bit.CHSEL=ChSel[5];
AdcRegs.ADCSOC6CTL.bit.CHSEL=ChSel[6];
AdcRegs.ADCSOC7CTL.bit.CHSEL=ChSel[7];
AdcRegs.ADCSOC8CTL.bit.CHSEL=ChSel[8];
AdcRegs.ADCSOC9CTL.bit.CHSEL=ChSel[9];
AdcRegs.ADCSOC10CTL.bit.CHSEL=ChSel[10];
AdcRegs.ADCSOC11CTL.bit.CHSEL=ChSel[11];
AdcRegs.ADCSOC12CTL.bit.CHSEL=ChSel[12];
AdcRegs.ADCSOC13CTL.bit.CHSEL=ChSel[13];
AdcRegs.ADCSOC14CTL.bit.CHSEL=ChSel[14];
AdcRegs.ADCSOC15CTL.bit.CHSEL=ChSel[15];
AdcRegs.ADCSOC0CTL.bit.TRIGSEL=Trigsel[0];
AdcRegs.ADCSOC1CTL.bit.TRIGSEL=Trigsel[1];
AdcRegs.ADCSOC2CTL.bit.TRIGSEL=Trigsel[2];
AdcRegs.ADCSOC3CTL.bit.TRIGSEL=Trigsel[3];
AdcRegs.ADCSOC4CTL.bit.TRIGSEL=Trigsel[4];
AdcRegs.ADCSOC5CTL.bit.TRIGSEL=Trigsel[5];
AdcRegs.ADCSOC6CTL.bit.TRIGSEL=Trigsel[6];
AdcRegs.ADCSOC7CTL.bit.TRIGSEL=Trigsel[7];
AdcRegs.ADCSOC8CTL.bit.TRIGSEL=Trigsel[8];
AdcRegs.ADCSOC9CTL.bit.TRIGSEL=Trigsel[9];
AdcRegs.ADCSOC10CTL.bit.TRIGSEL=Trigsel[10];
AdcRegs.ADCSOC11CTL.bit.TRIGSEL=Trigsel[11];
AdcRegs.ADCSOC12CTL.bit.TRIGSEL=Trigsel[12];
AdcRegs.ADCSOC13CTL.bit.TRIGSEL=Trigsel[13];
AdcRegs.ADCSOC14CTL.bit.TRIGSEL=Trigsel[14];
AdcRegs.ADCSOC15CTL.bit.TRIGSEL=Trigsel[15];
EDIS;
AdcRegs.ADCSOCFRC1.all = 0xFFFF;//快速启动 ADC
}
提前感谢你!!