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.

[参考译文] CCS/TMS320F28027:ADC 28027

Guru**** 2563960 points
Other Parts Discussed in Thread: CONTROLSUITE

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/638434/ccs-tms320f28027-adc-28027

器件型号:TMS320F28027
Thread 中讨论的其他器件:controlSUITE

工具/软件:Code Composer Studio

您好!

我想通过改变 ADC 的输入来改变正弦的振幅。我在配置 ADC 时遇到了问题。 当我向 ADCINA4 引脚提供3.3伏电压时,我得到了错误的值。我正在使用闪存 file.please 运行代码如果有人知道解决方案,请帮助我。

//######################################################################################################################
//
//:Example_2802xAd
//
//标题:F2802x ADC 转换开始(SOC)示例程序。
//
//假设:
//
//此程序需要 F2802x 头文件。
//
//确保在中正确定义了 CPU 时钟速度
// f2802x_Examples.h 再编译此示例。
//
//连接要转换为 A2和 A3的信号。
//
//根据提供的信息,此项目配置为“引导至 SARAM”
//操作。 2802x 引导模式表如下所示。
//有关配置 eZdsp 引导模式的信息,
//请参阅 eZdsp 附带的文档,
//
//$Boot_Table
//当仿真器连接到您的器件时、TRSTn 引脚= 1、
//将器件设置为 EMU_boot 引导模式。 在此模式下
//外设启动模式如下:
//
//引导模式:EMU_KEY EMU_BMODE
//(0xD00)(0xD01)
//--------------------------------------------------------
//等待!=0x55AA X
// I/O 0x55AA 0x0000
// SCI 0x55AA 0x0001
//等待0x55AA 0x0002
// get_Mode 0x55AA 0x0003
// SPI 0x55AA 0x0004
// I2C 0x55AA 0x0005
// OTP 0x55AA 0x0006
//等待0x55AA 0x0007
//等待0x55AA 0x0008
// SARAM 0x55AA 0x000A <--“Boot to SARAM”(引导至 SARAM)
//闪存0x55AA 0x000B
//等待0x55AA Other
//
//通过调试器将 EMU_KEY 写入0xD00、将 EMU_BMODE 写入0xD01
//根据上面的引导模式表。 编译/加载工程、
//重置设备,然后运行示例
//
//$end_Boot_Table
//
//
//描述:
//
//此示例将 PLL 设置为 x12/2模式。
//
//对于60MHz 器件(默认)
//(假设输入时钟为10MHz)。
//
//中断被启用并且 ePWM1被设置为生成一个周期
// ADC SOC - ADCINT1。 两个通道被转换、ADCINA4和 ADCINA2。
//
//监视变量:
//
// Voltage1[10]最后10个 ADCRESULT0值
// Voltage2[10]最后10个 ADCRESULT1值
//转换计数当前结果编号0-9
// LoopCount 空闲循环计数器
//
//
//######################################################################################################################
//$TI 发行版:F2802x 支持库 v230美元
//$Release Date:5月8日星期五07:43:05 CDT 2015 $
//版权所有:版权所有(C) 2008-2015 Texas Instruments Incorporated -
// http://www.ti.com/ 保留所有权利$
//######################################################################################################################

#include "DSP28x_Project.h"//器件头文件和示例 include 文件
#include "math.h"
#include"GPIO.h"

void InitEPwm1Examples(void);
//此文件中找到的函数的原型语句。
_interrupt void epwm1_ISR (void);
_interrupt void epwm2_ISR (void);
_interrupt void epwm3_ISR (void);
_interrupt void ADC_ISR (void);
void ADC_Config (void);

//此示例中使用的全局变量:
unsigned int r、y、b;
uint16_t LoopCount;

uint16_t K1;
uint16_t K2;
uint16_t K3;

float ipcb1[300];
float ipcb2[300];
float ipcb3[300];

#define PRD 4000
#define PI 3.14159265358979323846
extern uint16_t RamfuncsLoadStart;
extern uint16_t RamfuncsLoadSize;
extern uint16_t RamfuncsRunStart;

float main (空)


//警告:始终确保在从 RAM 运行任何函数之前调用 memcpy
// InitSysCtrl 包括对基于 RAM 的函数的调用,而不调用
// memcpy 首先,处理器将进入“杂草”
#ifdef _flash
memcpy (&RamfuncsRunStart、&RamfuncsLoadStart、(size_t)&RamfuncsLoadSize);
#endif

//步骤1. 初始化系统控制:
// PLL、安全装置、启用外设时钟
//此示例函数位于 F2802x_sysctrl.c 文件中。
InitSysCtrl();

//步骤2. 初始化 GPIO:
//此示例函数位于 F2802x_GPIO.c 文件和中
//说明了如何将 GPIO 设置为其默认状态。
// InitGpio();//针对此示例跳过
InitEPwm1Gpio();
InitEPwm2Gpio();
InitEPwm3Gpio();
//步骤3. 清除所有中断并初始化 PIE 矢量表:
//禁用 CPU 中断
Dint;

//将 PIE 控制寄存器初始化为默认状态。
//默认状态为禁用所有 PIE 中断和标志
//被清除。
//此函数位于 F2802x_PIECTRL.c 文件中。
InitPieCtrl();

//禁用 CPU 中断并清除所有 CPU 中断标志:
IER = 0x0000;
IFR = 0x0000;

//使用指向 shell 中断的指针初始化 PIE 矢量表
//服务例程(ISR)。
//这将填充整个表,即使是中断也是如此
//在本例中未使用。 这对于调试很有用。
//可以在 F2802x_DefaultIsr.c 中找到 shell ISR 例程
//此函数可在 F2802x_PieVect.c 中找到
InitPieVectTable();

//此示例中使用的中断被重新映射到
//此文件中的 ISR 函数。
EALLOW;//这是写入 EALLOW 受保护寄存器所必需的
PieVectTable.ADCINT1 =&ADC_ISR;
PieVectTable.EPWM1_INT =&epwm1_ISR;
PieVectTable.EPWM2_INT =&epwm2_ISR;
PieVectTable.EPWM3_INT =&epwm3/ISR;
EDIS;//这是禁止写入 EALLOW 受保护寄存器所必需的
memcpy (&RamfuncsRunStart、&RamfuncsLoadStart、(size_t)&RamfuncsLoadSize);
//步骤4. 初始化所有器件外设:
InitAdc ();//对于此示例,初始化 ADC
AdcOffsetSelfCal();

//步骤5. 特定于用户的代码、启用中断:
//在 PIE 中启用 ADCINT1
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=0;
EDIS;
InitEPwm1Examples();
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=1;
EDIS;

PieCtrlRegs.PIEIER3.bit.INTx1 = 1;
PieCtrlRegs.PIEIER3.bit.INTx2 = 1;
PieCtrlRegs.PIEIER3.bit.INTx3=1;
PieCtrlRegs.PIEIER1.bit.INTx1 = 1;//在 PIE 中启用 INT 1.1
IER |= M_INT1;//启用 CPU 中断1
IER |= M_INT3;
EINT;//启用全局中断 INTM
ERTM;//启用全局实时中断 DBGM

LoopCount = 0;

//配置 ADC
//注意:通道 ADCINA4将被双采样以解决修订版0器件勘误表中的 ADC 第一个采样问题
EALLOW;
AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1;//ADCINT1在 AdcResults 锁存后跳闸
AdcRegs.INTSEL1N2.bit.INT1E = 1;//启用 ADCINT1
AdcRegs.INTSEL1N2.bit.INT1CONT = 0;//禁用 ADCINT1连续模式
AdcRegs.INTSEL1N2.bit.INT1SEL = 2;//设置 EOC2以触发 ADCINT1触发
AdcRegs.ADCSOC1CTL.bit.CHSEL = 4;//将 SOC0通道选择设置为 ADCINA4
AdcRegs.ADCSOC2CTL.bit.CHSEL = 4;//将 SOC1通道选择设置为 ADCINA4
AdcRegs.ADCSOC3CTL.bit.CHSEL = 2;//将 SOC1通道选择设置为 ADCINA2
AdcRegs.ADCSOC1CTL.bit.TRIGSEL = 0xB;//设置 SOC0在 EPWM1A 上启动触发器、因为轮询 SOC0先转换、然后 SOC1
AdcRegs.ADCSOC2CTL.bit.TRIGSEL = 0xB;//设置 EPWM1A 上的 SOC1启动触发器,因为轮询 SOC0先转换,然后 SOC1
AdcRegs.ADCSOC3CTL.bit.TRIGSEL = 0xB;//设置 EPWM1A 上的 SOC2启动触发器、因为轮询 SOC0先转换 SOC1、然后转换 SOC2
AdcRegs.ADCSOC1CTL.bit.ACQPS = 6;//将 SOC0 S/H 窗口设置为7个 ADC 时钟周期(6个 ACQPS 加1)
AdcRegs.ADCSOC2CTL.bit.ACQPS = 6;//将 SOC1 S/H 窗口设置为7个 ADC 时钟周期、(6个 ACQPS 加1)
AdcRegs.ADCSOC3CTL.bit.ACQPS = 6;//将 SOC2 S/H 窗口设置为7个 ADC 时钟周期、(6个 ACQPS 加1)
EDIS;

//假设 ePWM1时钟已在 InitSysCtrl()中启用;
EPwm4Regs.ETSEL.bit.SOCAEN = 1;//启用组上的 SOC
EPwm4Regs.ETSEL.bit.SOCASEL = 4;//从 CPMA 中选择 SOC,启用计数
EPwm4Regs.ETPS.bit.SOCAPRD = 1;//在发生第一个事件时生成脉冲
EPwm4Regs.CMPA.half.CMPA = 0x0080;//设置比较值
EPwm4Regs.TBPRD = 0xFFFF;//为 ePWM1设置周期
EPwm4Regs.TBCTL.bit.CTRMODE = 0;//向上计数并启动


//等待 ADC 中断
for (;;)

LoopCount++;


_interrupt void ADC_ISR (void)

K1 = AdcResult.ADCRESULT1;//将 ADCRESULT0作为修订版0第一个样本勘误表权变措施的一部分丢弃
K2 = AdcResult.ADCRESULT2;
K3 = AdcResult.ADCRESULT3;

AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//清除 ADCINT1标志为下一个 SOC 重新初始化
PieCtrlRegs.PIEACX.ALL = PIEACK_Group1;//确认 PIE 中断

返回;

_interrupt void epwm1_ISR (void)

对于(r=0;r<300;r++)

ipcb1[r]=k1*sin (2*0.00333*pi*r);

EPwm1Regs.CMPA.half.CMPA = ipcb1[r];

if (((EPwm1Regs.TBCTR-(PRD/2))*2>(ipcb1[r])//设置操作

EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;
EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;
EPwm1Regs.AQCTLB.bit.CAU = AQ_CLEAR;
EPwm1Regs.AQCTLB.bit.CAD = AQ_SET;

其他

EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR;
EPwm1Regs.AQCTLA.bit.CAD = AQ_SET;
EPwm1Regs.AQCTLB.bit.CAU = AQ_SET;
EPwm1Regs.AQCTLB.bit.CAD = AQ_CLEAR;

如果(r=301){
R=0;

//清除此计时器的 INT 标志
EPwm1Regs.ETCLR.bit.INT = 1;

//确认此中断以接收来自组3的更多中断
PieCtrlRegs.PIEACX.ALL = PIEACK_Group3;

_interrupt void epwm2_ISR (void)

for (y=0;y<300;y++)

ipcb2[y]=k2*sin ((2*0.00333*pi*y)+2.09439);

EPwm2Regs.CMPA.half.CMPA = ipcb2[y];

//设置操作
if (((EPwm2Regs.TBCTR-(PRD/2))*2>(ipcb2[y]))

EPwm2Regs.AQCTLA.bit.CAU = AQ_SET;//在 CAU 上设置 PWM2A
EPwm2Regs.AQCTLA.bit.CAD = AQ_CLEAR;//清除 CAD 上的 PWM2A
EPwm2Regs.AQCTLB.bit.CAU = AQ_CLEAR;
EPwm2Regs.AQCTLB.bit.CAD = AQ_SET;

其他

EPwm2Regs.AQCTLA.bit.CAU = AQ_CLEAR;
EPwm2Regs.AQCTLA.bit.CAD = AQ_SET;
EPwm2Regs.AQCTLB.bit.CAU = AQ_SET;
EPwm2Regs.AQCTLB.bit.CAD = AQ_CLEAR;

如果(y==301){
Y=0;

//清除此计时器的 INT 标志
EPwm2Regs.ETCLR.bit.INT = 1;

//确认此中断以接收来自组3的更多中断
PieCtrlRegs.PIEACX.ALL = PIEACK_Group3;

_interrupt void epwm3_ISR (void)

for (b=0;b<300;b++)

ipcb3[b]=K3*sin ((2*pi*0.00333*b)-2.09439);

EPwm3Regs.CMPA.half.CMPA = ipcb3[b];

if (((EPwm3Regs.TBCTR-(PRD/2))*2>(ipcb3[b])//设置操作

EPwm3Regs.AQCTLA.bit.CAU = AQ_SET;
EPwm3Regs.AQCTLA.bit.CAD = AQ_CLEAR;
EPwm3Regs.AQCTLB.bit.CAU = AQ_CLEAR;
EPwm3Regs.AQCTLB.bit.CAD = AQ_SET;

其他

EPwm3Regs.AQCTLA.bit.CAU = AQ_CLEAR;
EPwm3Regs.AQCTLA.bit.CAD = AQ_SET;
EPwm3Regs.AQCTLB.bit.CAU = AQ_SET;
EPwm3Regs.AQCTLB.bit.CAD = AQ_CLEAR;

如果(b==301){
B=0;


//清除此计时器的 INT 标志
EPwm3Regs.ETCLR.bit.INT = 1;

//确认此中断以接收来自组3的更多中断
PieCtrlRegs.PIEACX.ALL = PIEACK_Group3;


空 InitEPwm1示例(空)

EALLOW;

GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1;// GPIO ³õʼ»¯ÎªepwmÊä³ö
GpioCtrlRegs.GPAMUX1.bit.GPIO1=1;
GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 1;
GpioCtrlRegs.GPAMUX1.bit.GPIO3=1;
GpioCtrlRegs.GPAMUX1.bit.GPIO4=1;
GpioCtrlRegs.GPAMUX1.bit.GPIO5=1;

EDIS;

EPwm1Regs.TBPRD = PRD;//设置定时器周期
EPwm1Regs.TBPHS.Half.TBPHS = 0x0000;//相位为0
EPwm1Regs.TBCTR = 0x0000;//清除计数器
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;//向上计数
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;//禁用相位加载
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;//时钟与 SYSCLKOUT 的比率
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;

EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADODE;//每0加载一次寄存器
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;

//低电平有效 PWM -设置死区
EPwm1Regs.DBCTL.bit.OUT_MODE = DB_FUL_ENABLE;
EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
EPwm1Regs.DBCTL.bit.IN_MODE = DBA_ALL;
EPwm1Regs.DBRED = 270;
EPwm1Regs.DBFED = 270;

//中断,我们将在其中更改死区
EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;//选择零事件时的 INT
EPwm1Regs.ETSEL.bit.INTEN = 1;//启用 INT
EPwm1Regs.ETPS.bit.INTPRD = et_1st;//在第三个事件发生时生成 INT


EPwm2Regs.TBPRD = PRD;//设置定时器周期
EPwm2Regs.TBPHS.Half.TBPHS = 0x0535;//相位为0
EPwm2Regs.TBCTR = 0x0000;//清除计数器
EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;//向上计数
EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE;//禁用相位加载
EPwm2Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;//时钟与 SYSCLKOUT 的比率
EPwm2Regs.TBCTL.bit.CLKDIV = TB_DIV1;//慢、只在示波器上观察

//低电平有效互补 PWM -设置死区
EPwm2Regs.DBCTL.bit.OUT_MODE = DB_FUL_ENABLE;
EPwm2Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
EPwm2Regs.DBCTL.bit.IN_MODE = DBA_ALL;
EPwm2Regs.DBRED = 270;
EPwm2Regs.DBFED = 270;

//中断,我们将在其中修改死区
EPwm2Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;//选择零事件时的 INT
EPwm2Regs.ETSEL.bit.INTEN = 1;//启用 INT
EPwm2Regs.ETPS.bit.INTPRD = et_1st;//在第三个事件发生时生成 INT

EPwm3Regs.TBPRD = PRD;//设置定时器周期
EPwm3Regs.TBPHS.Half.TBPHS = 0xA6A;//相位为0
EPwm3Regs.TBCTR = 0x0000;//清除计数器
EPwm3Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;//向上计数
EPwm3Regs.TBCTL.bit.PHSEN = TB_ENABLE;//禁用相位加载
EPwm3Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;//时钟与 SYSCLKOUT 的比率
EPwm3Regs.TBCTL.bit.CLKDIV = TB_DIV1;//速度慢、我们可以在示波器上观察

//高电平有效互补 PWM -设置死区
EPwm3Regs.DBCTL.bit.OUT_MODE = DB_FUL_ENABLE;
EPwm3Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
EPwm3Regs.DBCTL.bit.IN_MODE = DBA_ALL;
EPwm3Regs.DBRED = 270;
EPwm3Regs.DBFED = 270;

//中断,我们将在其中更改死区
EPwm3Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;//选择零事件时的 INT
EPwm3Regs.ETSEL.bit.INTEN = 1;//启用 INT
EPwm3Regs.ETPS.bit.INTPRD = et_1st;//在第三个事件发生时生成 INT

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我没有看到您的代码有任何问题。 可以告诉我更多信息吗? 您看到了哪些类型的值? 在哪里可以看到错误的值--在 ADC_ISR 中输入断点并查看 K2的值? 通道 A2是否正确输出?

    惠特尼
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复。
    可以告诉我更多信息吗? 您看到了哪些类型的值?
    我将在 ADC 结果寄存器中获得值1D、1E、1F、20、21。
    您是否在 ADC_ISR 中放置一个断点并查看 K2的值?
    没有、我不会在程序中的任何位置使用断点。
    通道 A2是否正确输出?
    我不知道。您能否帮助我。如何检查通道 A2是否正确输出。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将得到以下值

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您能否在 ADC_ISR 的末尾放置一个断点、并在到达断点时在"Expressions"窗口中查看结果值? 这样、我们就知道转换实际上已经发生、然后我们可以检查转换是否正确。

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     感谢您的回复、我在 ADC_ ISR 末尾保留了断点、但我在 ADC 结果寄存器中获得了相同的值。 请帮帮我。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回复、我在 ADC_ ISR 末尾保留了断点、但我在 ADC 结果寄存器中获得了相同的值。 请帮帮我。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它实际上是否在断点处停止? 在您发布的屏幕截图中、MCU 看起来仍然在运行-至少用灰色的"Resume"按钮判断。

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     感谢您的回复。当我在 ADC_ISR 末尾保留断点时、我将得到这一结果。请帮我忙

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我看到您已正确放置断点、但我仍然不清楚您是否实际遇到了断点、从而导致应用程序停止。 您能否确认 ISR 是否实际执行?

    您还能向我展示一下 ADC 配置寄存器的屏幕截图吗?

    谢谢、
    惠特尼
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回复。 虽然我在程序中放置了断点、但程序没有停止、并且我按照下面显示的屏幕截图配置了 ADC 寄存器。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ADDAGUDURU、

    您能否尝试使用 RAM 构建来查看行为是否发生变化?

    Tommy
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我尝试使用 RAM。我收到的错误程序将无法放入可用的内存位置。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请参阅此链接。此链接介绍如何将 RAM 用于我的 project.please 帮助我


    e2e.ti.com/.../2358207

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ADDAGUDURU、

    我建议您使用一个更简单的示例来调试您的闪存执行环境。

    确认 controlSUITE 中未经修改的 ADC_SoC 示例按预期工作。 确认后、移植一个 ADC_SoC 示例副本、以便从闪存运行。 在这种情况下、您将拥有一个良好的闪存环境来与您的定制软件进行合并。

    Tommy
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     具有闪存文件的 ADC SoC 的结果

    具有 RAM 文件的 ADC SoC 的结果

    我的项目的结果和闪存文件

     我是 CCS 的初学者 、请帮我

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ADDAGUDURU、

    对于此特定练习、屏幕截图没有作用。

    ADCRESULT 值是否符合您的预期? 其他人无法知道预期的值、因为您正在为 ADC 通道提供基准电压。

    您是否能够像惠特尼所建议的那样在断点上停止程序执行?

    Tommy
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我没有得到预期值。我向 ADCINA4提供3.3伏电压、然后我的预期值将为4095、但我没有得到该值。程序没有在断点处停止。 这两种情况的原因可能是什么。请帮助我
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为 ADC ISR 未执行或被绕过。 这是我面临的另一个问题
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ADDAGUDURU、

    如果未修改的 ADC_SoC 示例不起作用、则说明您的系统有问题。 在开发自定义代码之前、您需要解决这些问题。

    您正在使用什么电路板和仿真器? 它是 TI EVM 平台吗? ADC_SoC 示例中是否有任何部分可用于设置有效断点?

    Tommy