打印

有关中断的问题

[复制链接]
1464|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hlhfootbal|  楼主 | 2007-7-26 16:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//=============串口中断===============   
#pragma CODE_SEG __NEAR_SEG NON_BANKED //这句话起什么作用?
interrupt void SCI0_ISR(void)  //中断函数
{
  ReSciData=SCI0SR1;      //清标志位,这句话为什么能清标志位?
  ReSciData=SCI0DRL;      //取数据  
  PORTB=ReSciData;
  Remark=1;
}
请问程序是怎么进入中断函数的?

相关帖子

沙发
freetech_s| | 2007-7-27 08:50 | 只看该作者

当然是收到数就进接收中断了

使用特权

评论回复
板凳
JerryBJ| | 2007-8-1 23:19 | 只看该作者

这句话起什么作用

#pragma CODE_SEG __NEAR_SEG NON_BANKED
HC(S)的memory是分页的。规定中断服务程序只能写在没有分页的空间。这句话的作用是,告诉linker把下面的代码安排在没有分页的FLASH空间。
在中断服务程序结束后,应该用
#pragma CODE_SEG DEFAULT
把代码映射地址指回去。

当接收缓冲区满中断标志置位时,先读状态寄存器,再读书据寄存器就可以清除中断标志。HCS12的逻辑就是这样,没有什么为什么。

当接收到一个完整的数据后,RDRF中断就会进入。

使用特权

评论回复
地板
hlhfootbal|  楼主 | 2007-8-4 16:49 | 只看该作者

谢谢!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

133

主题

417

帖子

1

粉丝