我正在使用LCDK C6748 of 德州内部与 Composer 和TMDSEMU100V2U-14T-XDS100v2 USB模拟器。
LCDK附带了一系列支持函数,包括一个初始化板和定义每个中断调用哪些回调函数的函数。
我刚刚实现了回调函数,所以每当有一个新的样本来自ADC时,它就会做一些事情。
我试图在中断中设置一个断点,但在运行时,程序"flow“没有到达。
此外,我还做了一些更简单的事情:
volatile int flag = 0;
interrupt void interrupt4(void) // interrupt service routine
{
flag = 1;
return;
}
int main(){
// board initializing function, defining sampling rate etc.
L138_initialise_intr(FS_48000_HZ,ADC_GAIN_0DB,DAC_ATTEN_0DB);
while(1){
if (flag == 1){
printf("interrupt entered");
flag = 0;
}
}
}但是,出于某种原因,while循环只输入了一次。
这让我感到惊讶,因为如果我不设置断点,中断就会连续输入--我只想把示例传递给扬声器行,而没有做任何其他事情,我听到了音乐。
我有一种感觉,我错过了一些非常基本的关于中断的东西,我对这个话题很陌生。
有谁能给我解释一下,或者把我联系到解释DSP机制是如何工作的好来源?
1)为什么不能在中断内部设置断点?
( 2)为什么即使我主要设置了断点,中断似乎也不会发生,如果没有,则不会发生。
3)在运行时,在CCS中,我必须以何种方式访问变量?
谢谢
发布于 2015-01-14 04:15:24
发布于 2015-01-13 16:32:01
我认为你的中断是一个计时器中断。在许多情况下,当触发断点时,jtag会停止许多MPU/DSP模块,但是计时器继续运行。这会导致计时器溢出,这意味着设置了溢出标志,在重新设置标志之前,将永远不会调用中断。
我不知道是否可以在触发断点时设置jtag来停止计时器。与飞思卡尔MPU,IDE和segger jtag I可以。
https://stackoverflow.com/questions/27910204
复制相似问题