标题:
[原创][求助]s12定时器溢出中断问题
[打印本页]
作者:
shiyufei5291
时间:
2007-10-21 20:55
标题:
[原创][求助]s12定时器溢出中断问题
本人刚接触s12,想做个定时器中断溢出实验,不知为什么不进入中断服务程序,希望有高手指点一二,谢谢
程序如下
#include
/* common defines and macros */
#include
/* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
void TimerOverFlow_ISR(void){
PORTB=~PORTB;
}
void main(void){
TSCR1=0x80;
TSCR2=0x80;
TFLG2=0x80;
DDRB=0xFF;
asm{
nop
};
for (;;)
{
PORTB=0xff;
EnableInterrupts;
}
}
用的是BDM仿真,另外,在True-Time Simulator里不能连续运行
作者:
shiyufei5291
时间:
2007-10-21 20:57
已经在Prm文件夹里的加了中断向量,VECTOR ADDRESS 0xFFDE TimerOverFlow_ISR
作者:
strongchen
时间:
2007-10-22 09:59
你的程序有这样几个问题:
1. 中断程序必须放入非分页地址;
2. 在中断程序中必须请中断标志位;
3. 你在主循环中和中断程序中同时对PORTB进行操作,会产生冲突;
作者:
shiyufei5291
时间:
2007-10-22 23:16
谢谢,不过一点不明白,就是非分页地址的概念,怎么放入非分页地址呢
作者:
shiyufei5291
时间:
2007-10-22 23:40
改了程序,还是不行的,严重郁闷
#include
/* common defines and macros */
#include
/* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
#pragma CODE_SEG NON_BANKED
void TimerOverFlow_ISR(void){
TFLG2=0x80;
PORTB=~PORTB;
}
#pragma CODE_SEG DEFAULT
void main(void){
TSCR1=0x80;
TSCR2=0x80;
TFLG2=0x80;
DDRB=0xFF;
PORTB=0xff;
asm{
nop
};
for (;;)
{
EnableInterrupts;
}
}
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0