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

[求助]关于IO口中断

[求助]关于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


但连编译都通不过


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


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


多谢了

你换种中断写法
你的中断使用应该有问题
海纳百川
你的ROM定义不合理!!向量和空间冲突了!!
你在新建立工程时用的哪种内存模式那?一种是Small一种是Banked。用Small那种模式应该不会出现这样的情况。
水泡泡
 我的QQ是:52449804 
 我的网站是: www.dyic.com.cn
 欢迎访问和留言跟我联系
多谢各位
问题解决了
在中断函数前加
#pragma CODE_SEG NON_BANKED
就好了
但不懂为什么
用的是默认的模式
应该是Banked吧
#pragma CODE_SEG NON_BANKED
中断程序定义前面要加这句话的,告诉编译器这是一个中断程序。
lazy crazy
中断必须写入NON_BANKED区。请参看数据手册中的相应内容。
海纳百川  有容乃大
返回列表