Board logo

标题: 关于中断的问题已经可以debug仿真但不能正确运行,急,在线等 [打印本页]

作者: pigswine    时间: 2006-7-5 12:12     标题: 关于中断的问题已经可以debug仿真但不能正确运行,急,在线等

代码如下


#include <hidef.h>      /* common defines and macros */
#include <mc9s12dg128.h>     /* derivative information */


#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
 void RTI_Init(void);


#pragma CODE_SEG NON_BANKED
 
interrupt   7 void RTI_int(void) {
    short temp;
    CRGINT_RTIE=0;
    temp=PORTB;
    temp++;
    PORTB=temp;
    CRGFLG_RTIF=1;
    CRGINT_RTIE=1;
 }
#pragma CODE_SEG DEFAULT    


void RTI_Init(void) {
  RTICTL=0x7f;
  CRGINT=0x80; //49hz
}
 
void main(void) {
    DDRB=0xff;
    PORTB=0x00;
    RTI_Init();
    EnableInterrupts;
    while(1){
 };
}
  用的是9S12DG128B的片子,以上程序在W3.1中用Debug 仿真完全正确,但下到片子里后却不能正确运行,没有进入中断处理函数的迹象


  求教各位大侠这是怎么回事?


多谢多谢


作者: mkokji    时间: 2006-7-5 13:10     标题: 你说的是程序不应呢?还是运行但不合你的设计功能?

你说的是程序不应呢?还是运行但不合你的设计功能?
作者: pigswine    时间: 2006-7-5 14:44

似乎进行了一次中断后就不再进行中断了
原来希望在led上显示1-255的2进制数,结果只显示了1就不再变化了
B口接到led上
作者: strongchen    时间: 2006-7-6 10:03

既然你可以将程序下的片子里,那应该也能仿真调试吧。调试一下程序到底是怎么跑的,有没有进中断?
作者: qqxx082    时间: 2006-7-17 00:24

temp=PORTB;
temp++;
PORTB=temp;
我觉得可能是这有问题,你可以试试其他得检测方法
作者: 307102293    时间: 2006-7-17 00:39

你好,我这里有能用的样例程序,给我你的邮箱,回头发给你。
顺便问一句:是飞思卡尔大赛的么?
作者: zhangyang2008    时间: 2006-7-26 20:07

用软件仿真,速度太慢,而硬件速度快,如果在软件上仿真可以观察到快速的变化,在硬件上很可能观察不到。

作者: zhangyang2008    时间: 2006-7-26 20:10

用软件仿真,速度太慢,而硬件速度快,如果在软件上仿真可以观察到快速的变化,在硬件上很可能观察不到。你可以把数值变化设置的慢一点,试一下。





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