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

[新手求助]初学中断,为什么进不去中断啊?

[新手求助]初学中断,为什么进不去中断啊?

本帖最后由 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: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
返回列表