Board logo

标题: [求助]关于IO口中断 [打印本页]

作者: yl84304070    时间: 2006-3-28 21:06     标题: [求助]关于IO口中断

我用MC9S12DG128B编了个简单的IO口中断程序


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



#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"


void PORTH_Init()
{
    DDRH=0x00;
    PIEH=0xFF;
    PPSH=0xFF;
    PPSH=0xFF;  
}


void PORTA_Init()
{
    DDRA=0xFF;
  ORTA=0xFF;
}


interrupt void out()
{
    PIFH=0x01;
  ORTA=0x00;
}


void main(void)
{


  DisableInterrupts;
  PORTA_Init();
  PORTH_Init();
  EnableInterrupts;
 
  for(;;)
  {
 
  }
}
在P&E_ICD_link里加了中断声明 VECTOR ADDRESS 0xFFCC  out


但连编译都通不过


显示错误说不在中断向量值的范围里


请问各位大侠是什么问题呀


多谢了


作者: dager168    时间: 2006-3-28 22:22

你换种中断写法
你的中断使用应该有问题
作者: ctypyb2002    时间: 2006-3-29 02:27

你的ROM定义不合理!!向量和空间冲突了!!
作者: nishui_2000    时间: 2006-3-29 08:16

你在新建立工程时用的哪种内存模式那?一种是Small一种是Banked。用Small那种模式应该不会出现这样的情况。
作者: yl84304070    时间: 2006-3-29 08:40

多谢各位
问题解决了
在中断函数前加
#pragma CODE_SEG NON_BANKED
作者: yl84304070    时间: 2006-3-29 08:41

就好了
但不懂为什么
用的是默认的模式
应该是Banked吧
作者: jiazhenhua    时间: 2006-4-4 09:54

#pragma CODE_SEG NON_BANKED
中断程序定义前面要加这句话的,告诉编译器这是一个中断程序。
作者: strongchen    时间: 2006-4-4 10:50

中断必须写入NON_BANKED区。请参看数据手册中的相应内容。




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