有关中断的问题

[复制链接]
2591|3
 楼主| hlhfootbal 发表于 2007-7-26 16:18 | 显示全部楼层 |阅读模式
//=============串口中断===============&nbsp;&nbsp;&nbsp;<br />#pragma&nbsp;CODE_SEG&nbsp;__NEAR_SEG&nbsp;NON_BANKED&nbsp;//这句话起什么作用?<br />interrupt&nbsp;void&nbsp;SCI0_ISR(void)&nbsp;&nbsp;//中断函数<br />{<br />&nbsp;&nbsp;ReSciData=SCI0SR1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//清标志位,这句话为什么能清标志位?<br />&nbsp;&nbsp;ReSciData=SCI0DRL;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//取数据&nbsp;&nbsp;<br />&nbsp;&nbsp;PORTB=ReSciData;<br />&nbsp;&nbsp;Remark=1;<br />}<br />请问程序是怎么进入中断函数的?
freetech_s 发表于 2007-7-27 08:50 | 显示全部楼层

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

  
JerryBJ 发表于 2007-8-1 23:19 | 显示全部楼层

这句话起什么作用

#pragma&nbsp;CODE_SEG&nbsp;__NEAR_SEG&nbsp;NON_BANKED<br />HC(S)的memory是分页的。规定中断服务程序只能写在没有分页的空间。这句话的作用是,告诉linker把下面的代码安排在没有分页的FLASH空间。<br />在中断服务程序结束后,应该用<br />#pragma&nbsp;CODE_SEG&nbsp;DEFAULT<br />把代码映射地址指回去。<br /><br />当接收缓冲区满中断标志置位时,先读状态寄存器,再读书据寄存器就可以清除中断标志。HCS12的逻辑就是这样,没有什么为什么。<br /><br />当接收到一个完整的数据后,RDRF中断就会进入。
 楼主| hlhfootbal 发表于 2007-8-4 16:49 | 显示全部楼层

谢谢!

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

133

主题

417

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部