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_SoC_Continuous 示例在 TMS320F28379D 上工作时遇到问题。
它可以很好地构建和编译。
但是、似乎无法将测量值保存在存储器中。
当我在3.3V 引脚上插入 A0引脚(引脚9)时、我可以观察到 AdcaResultRegs.ADCRESULT0寄存器一直到 T7、该值变为4095、但 AdcaResults 表保持为0、而它应该将寄存器上的值复制到这段代码中:
" AdcaResults[resultsIndex++]= AdcaResultRegs.ADCRESULT0;
AdcaResults[resultsIndex++]= AdcaResultRegs.ADCRESULT1;
AdcaResults[resultsIndex++]= AdcaResultRegs.ADCRESULT2;
AdcaResults[resultsIndex++]= AdcaResultRegs.ADCRESULT3;
AdcaResults[resultsIndex++]= AdcaResultRegs.ADCRESULT4;
AdcaResults[resultsIndex++]= AdcaResultRegs.ADCRESULT5;
AdcaResults[resultsIndex++]= AdcaResultRegs.ADCRESULT6;
AdcaResults[resultsIndex++]= AdcaResultRegs.ADCRESULT7;"
因此表中没有副本、"resultsIndex"保持为0。
当查看代码中我之前的部分时:
" //
//软件强制启动 SOC0到 SOC7
//
AdcaRegs.ADCSOCFRC1.ALL = 0x00FF;
//
//继续采样,直到结果缓冲区已满
//
while (resultsIndex < results_buffer_size)
{
//
//等待第一组8个转换完成
//
while (0 = AdcaRegs.ADCINTFlG.bit.ADCINT3);
//
//清除前8个转换生成的两个 INT 标志
//
AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;
AdcaRegs.ADCINTFLGCLR.bit.ADCINT3 = 1;"
我认为我的问题就在这里:当查看标志 AdcaRegs.ADCINTFLG.bit.ADCINT3和 AdcaRegs.ADCINTFLLR.bit.ADCINT1时、它们总是为0。
有人以前是否遇到过此问题?
您的帮助将非常受人赞赏。
谢谢
您好!
您是否对代码或项目设置进行了任何更改? 我按原样运行了该示例、没有遇到任何问题。
如果你在从 ADCRESULT0读取的行上放置一个断点、你可以到达它、还是停留在等待 ADCINTFlG.ADCINT3变为非零的 while 循环上?
谢谢、
惠特尼
您好、Witney、
我还没有更改任何代码。
我在" while (0 = AdcaRegs.ADCINTFlG.bit.ADCINT3)"获得库存;由于某种原因、它们不会生成标志。
我尝试在 Project => Properties => Build => C2000 Compiler => Advanced Options => Predefined symbols 中添加"add _LAUNCHXL_F28379D"
但我最终在构建项目时遇到以下失败:
>>编译失败
subdir_rules.mk:79:目标'adc_soc_continuous_cpu01.obj'的配方失败
>>警告:指定了多个源文件;将仅为最后一个文件生成预处理器输出
致命错误#1965:无法打开源文件"_LAUNCHXL_F28379D"
1在编译"_LAUNCHXL_F28379D"时检测到灾难性错误。
编译已终止。
gmake:***[ADC_SoC_Continuous_cpu01.obj]错误1.
gmake:目标"全部"不会由于错误而重新生成。
此外、项目属性中还有"Generic c28xxDevice"=> General
我以 ControlleSuite/device support/TMS320F2837xD ../../.中的示例为例。 V210/...CPU1
目标配置为 TMS320F28377D、但我有一个 TMS320F28379D、但其他文件示例效果良好。 所以我不能确定问题在这里。
如果我尝试更改 F28379D 的目标配置、我会遇到很多有关存储器的构建错误、如下所示:
"C:/ti/controlSUITE/device_support/F2837xD/v210/F2837xD_common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第7行:错误#10263:
已指定起始存储器范围
"C:/ti/controlSUITE/device_support/F2837xD/v210/F2837xD_common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第7行:错误#10264:
开始存储器范围与现有存储器范围开始重叠
"C:/ti/controlSUITE/device_support/F2837xD/v210/F2837xD_common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第8行:错误#10263:
RAMM0内存范围已指定
"C:/ti/controlSUITE/device_support/F2837xD/v210/F2837xD_common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第8行:错误#10264:
RAMM0存储器范围与现有存储器范围 RAMM0重叠
"C:/ti/controlSUITE/device_support/F2837xD/v210/F2837xD_common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第9行:错误#10263:
RAMD0内存范围已指定
"C:/ti/controlSUITE/device_support/F2837xD/v210/F2837xD_common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第9行:错误#10264:
RAMD0存储器范围与现有存储器范围 RAMD0重叠
"C:/ti/controlSUITE/device_support/F2837xD/v210/F2837xD_common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第10行:错误#10263:
已指定 RAMLS0存储器范围
"C:/ti/controlSUITE/device_support/F2837xD/v210/F2837xD_common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第10行:错误#10264:
RAMLS0存储器范围与现有存储器范围 RAMLS0重叠
感谢您的帮助、