调试工具为keil mdk 5.23。调试使用官网例程comp_e_interrupt_output_toggle_Vref12V (目录 driverlib\msp432_driverlib_3_21_00_05\examples\MSP432P4xx\comp_e\comp_e_interrupt_output_toggle_Vref12V)。
若直接使用官网例程,实验能够正常进行(通过比较器,在中断中控制LED亮灭)。
若不使用芯片内部固件函数(
将comp_e_interrupt_output_toggle_Vref12V例程移到开发板例程BlinkLED_MSP432P401R ( 目录 MSP-EXP432P401R_Software_Examples_windows\Firmware\Source\BlinkLED_MSP432P401R\KEIL)中,并除去函数的MAP_前缀
):
情况1.
用keil 5.23全速运行例程时,程序会卡到Interrupt_enableInterrupt(INT_COMP_E0)中而不能执行其以后的语句,此时若停止全速运行,不点复位,再次点单步运行或全速执行,程序又能够正常运行。
情况2.
情况1.的环境下,若改变Interrupt_enableInterrupt(INT_COMP_E0)和Interrupt_enableSleepOnIsrExit()顺序(如下图所示),则程序无论全速还是单步均能正常运行。
请问TI工程师,产生这种现象原因是什么?如何避免在使用过程中产生类似情况?谢谢