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.

[参考译文] MSP432P401R:MSP432P401R

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/578985/msp432p401r-msp432p401r

部件号:MSP432P401R

我在WFP 5.4 上写了一个程序,用计时器来测量模拟值。 代码工作正常。 当我删除while循环并在CCS v7中运行代码时,代码在一轮引发中断和测量后退出。 但在调试模式下,当我将中断点保留在中断内时,程序在第一次中断后进入退出例程。 但如果我继续提供恢复,则计时器模块和ADC都可以正常工作。

根据规则,如果主功能中没有锁定回路,程序必须终止。 为什么在 调试模式下通过退出例程后仍会调用中断。  

#include "msp.h"
#include<stdio.h>

int main(void){
易失性无符号int I;
__enable_IRQ();
NVIC->ISER[0]=1<<(T32_INT1_IRQn)和31);
WDT_A->CTL = WDT_A_CTL_PW | WDT_A_CTL_HOLD; //停止WDT

// GPIO设置
P1->out &=~BIT0; //清除LED以启动
P1->DIR || BIT0; //将WFP 1.0 设置为OUTPUT (输出)
p5->SEL1 || BIT4; //为ADC配置WFP 5.4
p5->SEL0 |= BIT4;

//TIMER32_1->CONTROL = BIT6 | BIT5| BIT1;
TIMER32_1->CONTROL = TIMER32_CONTROL_SIZE | TIMER32_CONTROL_MODE;
TIMER32_1->load= 0x0026CDC0;

ADC14->CTL0 = ADC14_CTL0_ON |
ADC14_CTL0_MSC |
ADC14_CTL0_SHT0__16|
ADC14_CTL0_SHP |
ADC14_CTL0_CONSEQ_1;

ADC14->CTL1 = ADC14_CTL1_RES_2;

ADC14->CTL0 |= 0x8万 |0x10万;
//从ISR退出时禁用睡眠
SCB->SCR &=~SCB_SCR_SLEEPONEXIT_MSK;
//SCB->SCR |= SCB_SCR_SLEEPONEXIT_MSK;

TIMER32_1->CONTROL |= TIMER32_CONTROL_ENABLE | TIMER32_CONTROL_IE;
ADC14->MCTL[0]= ADC14_MCTLN_Inch_1;
ADC14->CTL0 || ADC14_CTL0_ENC | ADC14_CTL0_SC;
scb->scr |= BIT2;

// while (1){/////{}




void T32_INT1_IRQHandler(void){

TIMER32_1->INTCLR |= BIT0; //清除Timer32中断标志

如果(ADC14->MEM[0]>= 0x7FF){ // ADC12MEM0 = A1 > 0.5AVcc?
printf ("更少\n");
P1->OUT |= BIT0; // WFP 1.0 =1
}

否则{
P1->out &=~BIT0;
printf("more \n");
}
// p1->输出^= BIT0;
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Ashwin,
    我将对此进行调查,看看我是否可以重现问题。 如果您删除了调试器并只监视了1.0 ,您仍会看到IO切换吗?

    此致,
    Chris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是如果我删除调试器并运行LED切换。 如果没有调试器,我们将无法实现退出代码在一轮之后运行。 感谢您的回复。 非常期待您的帮助。 还有一个疑问。 尽管程序已结束,CS和ADC14等模块是否仍运行?