首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

请问高手:

请问高手:

我刚写了一个简单的测试程序,有点疑问就是为什么运行后 在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

程序中的有些语句可能被优化掉,这时设置断点就不起作用了。你要看一下相应的汇编指令语句有没有。
海纳百川  有容乃大

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

重新设置一下可以吗

睡觉睡到自然醒,数钱数到手抽筋!
  ▲╭╩═╮╔════╗╔════╗╔════╗╔════╗╔════╗
    ╭╯G O ╠╣支持楼主╠╣正真牛人 ╠╣雁过留声╠╣人过留帖╠╣拿分走人╣
    ╰⊙═⊙╯╚◎══◎╝╚◎══◎╝╚◎══◎╝╚◎══◎╝╚◎══◎╝

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

返回列表