标题:
[新手求助]初学中断,为什么进不去中断啊?
[打印本页]
作者:
javahan1
时间:
2009-10-2 23:12
标题:
[新手求助]初学中断,为什么进不去中断啊?
本帖最后由 javahan1 于 2009-10-6 20:28 编辑
为什么定时器溢出中断进不去啊??谢谢各位。。用软件调试的时候是可以进去的,但是,监控程序下没有反应。。很奇怪。。
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
//unsigned int i;
void init_ECT(void);
void main(void)
{
// i=50000;
EnableInterrupts;
DDRB=0xff;
PORTB=0xff;
init_ECT();
for(;;)
{
//PORTB=0x00;
}
}
void init_ECT(void)
{
TSCR2=0x87; //定时器溢出中断允许,设置预分频为128,即16/128??
TFLG2_TOF=1; //初始化清标志位
TSCR1=0x80; //定时器允许
}
#pragma CODE_SEG NON_BANKED //将中断程序放到非分页地址
interrupt 16 void time_overflow(void)
{
DisableInterrupts;
TFLG2_TOF=1; //清定时器溢出标志位
PORTB=0x00;
//EnableInterrupts;
}
作者:
javahan1
时间:
2009-10-6 21:05
本帖最后由 javahan1 于 2009-10-6 21:06 编辑
MC9S12DG128监控程序下,定时器溢出中断不能运行。用BDM把程序下载进去后,中断正常。
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
unsigned int a,b;
void delay_MS(void);
#pragma CODE_SEG NON_BANKED //将中断程序放到非分页地址
#pragma TRAP_PROC
void time_overflow(void)
{
DisableInterrupts;
TFLG2_TOF=1; //清定时器溢出标志位
PORTB=0x00;
delay_MS();
EnableInterrupts;
}
#pragma CODE_SEG DEFAULT
void delay_MS(void)
{
for(a=200;a>0;a--)
for(b=5000;b>0;b--);
}
void init_ECT(void)
{
TSCR2=0x87; //定时器溢出中断允许,设置预分频为128,即16/128??
TFLG2_TOF=1; //初始化清标志位
TSCR1=0x80; //定时器允许
}
void main(void)
{
EnableInterrupts;
DDRB=0xff;
PORTB=0xff;
init_ECT();
for(;;)
{
PORTB=0xff;
}
}
prm中,VECTOR ADDRESS 0xFFDE time_overflow
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0