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/MSP432P401R:ADC14调试:__aeabi_ddiv 不包含帧信息

Guru**** 2577385 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/609420/ccs-msp432p401r-adc14-debugging-__aeabi_ddiv-does-not-contain-frame-information

器件型号:MSP432P401R

工具/软件:Code Composer Studio

我正在尝试在 重复通道序列(重复自动扫描)模式下测试 ADC14。 使用 MSP432代码示例作为参考、我编写了一些代码来扫描 ADC14通道 A6-A9、切换某些 GPIO 引脚作为通道输入。 当调试模式中使用指令单步进入/单步执行时、代码运行良好。 但是、当代码在自由运行模式下运行时(在调试模式下使用"恢复"按钮)暂停时、代码会在汇编语言文件("fd_div_t2.asm")中暂停。 根据其说明、汇编文件用于将2个 IEEE 格式的双精度浮点数相乘。 此外、调试模式左上角的调试窗口具有以下状态:" fd_div_t2.asm:179 0x00000F14 (__aeabi_ddiv 不包含帧信息)"。

ADC14代码:

#define Results (8)

静态 uint8_t 索引;
易失性浮点 VoltC0[Results]={0};
易失性浮点 VoltC1[Results]={0};
易失性浮点 VoltC3[Results]={0};
易失性浮点 VoltC4[Results]={0};

空 ADC_pin (void)
{

volatile uint8_t i = 0;

//配置 GPIO

P3DIR = BIT2 | BIT7; //输出引脚
P6DIR = BIT0 | BIT7;

//启用全局中断
__ENABLE_IRQ();

//在 NVIC 模块中启用 ADC 中断
NVIC->ISER[0]= 1 <<(ADC14_IRQn)& 31);

ADC14->CTL0 = ADC14_CTL0_MSC| ADC14_CTL0_SHT0__192| ADC14_CTL0_ssel_MCLK |
ADC14_CTL0_SHP | ADC14_CTL0_CONSEQ_3 | ADC14_CTL0_ON;

ADC14->CTL1 |= ADC14_CTL1_RES_14BIT |(ADC14_CTL1_CSTARTADD_MASK & 6 << 16);//14位分辨率、通道 A6启动
ADC14->MCTL[6]= ADC14_MCTLN_INCH_6;//V (R+)= AVcc、CHANNEL = A0
ADC14->MCTL[7]= ADC14_MCTLN_INCH_7;//通道= A1
ADC14->MCTL[8]= ADC14_MCTLN_INCH_8;//通道= A3
ADC14->MCTL[9]= ADC14_MCTLN_INCH_9 | ADC14_MCTLN_EOS;//通道= A4
ADC14->IER0 = ADC14_IER0_IE9;

while (1)
{
P3OUT ^= BIT2 | BIT4; //切换
P6OUT ^= BIT0 | BIT7; //切换

//启动转换软件触发
ADC14->CTL0 |= ADC14_CTL0_ENC | ADC14_CTL0_SC;
_SLEEP();
__no_operation();
}
}


//ADC14中断服务例程

void ADC14_IRQHandler (void)
{
if (ADC14->IFGR0和 ADC14_IFGR0_IFG9)
{
VoltC0[索引]= ADC14->MEM[6];
VoltC0[索引]=(VoltC0[索引]* 3.0)/16384;

Voltc1[索引]= ADC14->MEM[7];
Voltc1[索引]=(Voltc1[索引]* 3.0)/16384;

VoltC3[索引]= ADC14->MEM[8];
VoltC3[索引]=(VoltC3[索引]* 3.0)/16384;

Voltc4[索引]= ADC14->MEM[9];
Voltc4[索引]=(Voltc4[索引]* 3.0)/16384;

索引=(索引+ 1)& 0x7;
__no_operation();
}
}

有人能不能指出出错了吗? 上述代码是否会导致其进入汇编文件中?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Rishi、
    您正在尝试查看您在自由模式下运行的是什么? 如果您尝试查看值 VoltC0-C4、则可以在 no 操作上放置一个断点、并设置断点属性以更新视图、并查看表达式窗口中的值。

    Chris