Board logo

标题: 请问高手: [打印本页]

作者: hooter    时间: 2009-3-13 16:39     标题: 请问高手:

我刚写了一个简单的测试程序,有点疑问就是为什么运行后 在for循环里设断点,程序停不住啊,定时中断里可以。第一次用这个模板,请各位多多指教哦~~

下面是程序::

#include <hidef.h> /* common defines and macros */
#include <mc9s12dp256.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dp256b"


void Timer0_init(){
TIOS_IOS0 = 1;
TSCR1_TEN = 1;
TSCR2 = 0x07;
TCTL2_OL0 = 0;
TCTL2_OM0 = 0;
TC0 = 6250;//150ms
TIE_C0I = 1;
}

void main(void) {
/* put your own code here */
uchar i;
DDRA = 0xff;
PORTA = 0xff;
Timer0_init();
EnableInterrupts;

for(;;)
{
i++;
if(i==255){
i= 0;
}
} /* wait forever */
/* please make sure that you never leave this function */
}

uchar t = 0;
#pragma CODE_SEG NON_BANKED
#pragma TRAP_PROC
void timer0_interrupt(){
uchar flag;
static uint cnt;
flag = TFLG1;
TC0 = TC0 + 6250;
cnt++;
if(cnt==10){
t = ~t;
PORTA =~ PORTA;
}

}
#pragma CODE_SEG DEFAULT


作者: strongchen    时间: 2009-3-16 09:03

程序中的有些语句可能被优化掉,这时设置断点就不起作用了。你要看一下相应的汇编指令语句有没有。
作者: hooter    时间: 2009-3-17 14:07

我觉得如果被优化掉后断点可能就设不上了,那怎么样才能防止它被优化掉啊?


作者: rest    时间: 2009-3-17 14:13

重新设置一下可以吗


作者: ioryws    时间: 2009-3-21 13:48

中断加中断号,或者设置入口地址






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0