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.

[参考译文] MSP430F5529:ADC 中断功能问题

Guru**** 2591020 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1052011/msp430f5529-adc-interrupt-function-issue

器件型号:MSP430F5529

大家好、

客户设置一个 ADC 中断函数、将数据从 MEM0导入到其自己设置的数组中。 在收集数据样本后、ADC 直接在中断功能中关闭(ADC12ON ADC12ENC ADC12SC 直接设置为零)、并根据调试结果、客户设置 index=2作为关闭 ADC 的条件:

在检查所有步骤、index=2并执行 Close ADC 语句并结束中断函数运行后、中断函数会再次运行、并且根据语句索引为+1; 运行完成后、单片被停留在中断功能的末尾、不能跳出并且不能执行 CCS 接口上的暂停按钮。

此时、index=2、并执行 if 内容。

此时、索引=3不是使用 index++指令执行的:

此时、索引= 4、上面运行的三角形按钮会自动转换为暂停键按钮、程序不能暂停:

以下是主函数和中断函数代码:

void main (void)


WDTCTL = WDTPW+WDTHOLD;//停止看门狗计时器
P6SEL |= 0x01;//启用 A/D 通道 A0
ADC12CTL0 = ADC12ON+ADC12SHT0_8+ADC12MSC;//打开 ADC12、设置采样时间
//设置多个采样转换
ADC12CTL1 = ADC12SHP+ADC12CONSEQ_2+ADC12SSEL_0;//使用采样计时器、设置模式
ADC12IE = 0x01;//启用 ADC12IFG.0
ADC12CTL0 |= ADC12ENC;//启用转换
ADC12CTL0 |= ADC12SC;//开始转换

_bis_SR_register (LPM4_bits + GIE);//输入 LPM4、启用中断
//用于调试器
while (1)

if (index==3)

f = 1;
索引= 0;

对于(Q4=0;q4 <num_point;q4++)

CHAN_DATA=Results[Q4];
///san_data -=0x7FF;
CHAN_DATA *= 1.5;
Result Q4]=((float) Chan_data/4095);

FFT (结果、TAB_dfti);
get_power (结果、tab_dfti);
排序(tab_power、count_index);


#pragma vector=ADC12_vector
_interrupt void ADC12ISR (void)

switch (__evo_in_range (ADC12IV、34))

情况0:中断;//向量0:无中断
情况2:中断;//矢量2:ADC 溢出
情况4:中断;//矢量4:ADC 时序溢出
情况6://向量6:ADC12IFG0

Results[索引]= ADC12MEM0;//移动结果
//将结果索引递增,取模;在此处设置 Breakpoint1
//ADC12IFG0 &=~BIT0;
如果(索引==3)

索引=0;
ADC12CTL0 &=~ADC12ENC;
ADC12CTL0 &=~ADC12ON;
ADC12CTL0 &=~ADC12SC;


索引++;
break;//递增结果索引,模;在此处设置 Breakpoint1

情况8:中断;//向量8:ADC12IFG1
情况10:中断;//向量10:ADC12IFG2
情况12:中断;//向量12:ADC12IFG3
案例14:中断;//矢量14:ADC12IFG4
情况16:中断;//向量16:ADC12IFG5
情况18:中断;//向量18:ADC12IFG6
情况20:中断;//向量20:ADC12IFG7
情况22:中断;//向量22:ADC12IFG8
情况24:中断;//向量24:ADC12IFG9
情况26:中断;//向量26:ADC12IFG10
情况28:中断;//向量28:ADC12IFG11
情况30:中断;//向量30:ADC12IFG12
情况32:中断;//向量32:ADC12IFG13
案例34:中断;//矢量34:ADC12IFG14
默认值:break;

返回;
s}

您可以帮助检查此案例吗? 谢谢。

此致、

樱桃

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

    你好,Cherry

    我认为 MSP430F55xx_ADC_09.c 代码示例在用户请求时提供了类似的功能。 我建议我们在 设计代码时提供代码示例 MSP430F552x C 示例(IAR 和 CCSv4)(修订版 L)作为参考。

    谢谢!