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.
工具/软件:Code Composer Studio
LaunchPad开发套件(MSP‑EXP430G2ET)问题:调试在中断例程中不起作用。当我们开始调试时,它会在中断例程中停止。
代码如下所示:
#include
unsigned int j=0;
void main (void)
{
WDTCTL = WDTPW + WDTHOLD;//停止 WDT
P1DIR |= 0x41;// P1.0和 P1.6输出
TACTL = tassel_2 + MC_2 + TAIE;// SMCLK、contmode、中断
_BIS_SR (LPM0_Bits + GIE);//输入 LPM0、带中断
}
// Timer_A3中断矢量(TA0IV)处理程序
#pragma vector=TIMER0_A1_vector
_interrupt void Timer_A (void) //**无法在此例程中进行调试。
{
J++;
if (j==20)
{
P1OUT ^= 0x41;
}
}
您好!
Sapana darekar 说:在中调试不在中断例程中工作。当我们开始调试时,它会在中断例程中停止。
您的具体意思是什么? 它永远不会在中断处停止、还是总是在中断处停止、但不会向前移动? 如果它从未停止、您是否尝试向它添加断点?
我在电路板中测试了您的代码、它工作正常-两个 LED 都以大约2秒的时间闪烁。
e2e.ti.com/.../20191202_5F00_094540_5F00_640.mp4
此致、
拉斐尔
感谢您的反馈。
我的代码在我运行它时起作用。 但是、当我学习编程时、我想知道 如何逐步执行程序。
程序将分步运行、直到中断例程在该分步调试在中断例程中停止后才会停止。
您好!
我认为我理解可能会发生什么情况。 当您执行分步操作时、如果 MSP 内核停止或未停止、计时器中断将独立发生。
在这种情况 下、由于步进时始终会触发计时器中断(您的操作比计时器本身慢得多)、因此中断服务例程(ISR)将重复执行。
如果在 main()中运行了其他代码,则可以在给定的位置放置断点并使处理器运行。 在这种情况下、计时器中断只会被处理一次、处理器会转到主例程以执行其余代码、直到它到达断点。 通过这种方式、您可以看到它也运行其他函数。
此致、
拉斐尔