菜鸟问个有关HC9S12的简单的问题

[复制链接]
2490|1
 楼主| y564232717 发表于 2007-7-14 10:06 | 显示全部楼层 |阅读模式
我想用PORTH的5,6,7引脚接外部的中断信号,请问怎么为各个引脚写一个中断程序,以及他们的优先级处理问题
lwtlwt 发表于 2007-7-16 10:48 | 显示全部楼层

re.

如下所示将PORTH_4设置为中断触发:<br /><br />void&nbsp;PortH_Init(void)<br />{  &nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;PPSH&nbsp;|=&nbsp;&nbsp;(1&nbsp;&lt&lt&nbsp;4);&nbsp;&nbsp;&nbsp;&nbsp;//设置为上升沿中断,视需求再修改<br />&nbsp;&nbsp;&nbsp;&nbsp;PERH&nbsp;|=&nbsp;&nbsp;(1&nbsp;&lt&lt&nbsp;4);&nbsp;&nbsp;&nbsp;//使能上拉/下拉电阻,视需求再修改<br />&nbsp;&nbsp;&nbsp;&nbsp;DDRH&nbsp;&=&nbsp;~(1&nbsp;&lt&lt&nbsp;4);&nbsp;&nbsp;&nbsp;//置为输入状态<br />&nbsp;&nbsp;&nbsp;&nbsp;PIFH&nbsp;=&nbsp;(1&nbsp;&lt&lt&nbsp;4);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//清除之前可能产生的中断标志,<br />&nbsp;&nbsp;&nbsp;&nbsp;PIEH_PIEH4&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//使能PORTH_4中断<br />}<br /><br />以下下中断服务程序:<br />#pragma&nbsp;CODE_SEG&nbsp;__NEAR_SEG&nbsp;NON_BANKED<br />interrupt&nbsp;void&nbsp;_PORTH_Interrupt(void)<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(PIFH&nbsp;&&nbsp;(1&nbsp;&lt&lt&nbsp;4))&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIFH&nbsp;=&nbsp;(1&nbsp;&lt&lt&nbsp;4);&nbsp;&nbsp;&nbsp;//&nbsp;清除中断标志,这是必需的,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;这里加入中断服务程序&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />#pragma&nbsp;CODE_SEG&nbsp;DEFAULT<br /><br />PRM文件中的中断向量声明:<br /><br />VECTOR&nbsp;ADDRESS&nbsp;0xFFCC&nbsp;_PORTH_Interrupt<br /><br />如果使用PE产生的中断向量表,则将&nbsp;_PORTH_Interrupt加入向量表格相应位置,不需要在PRM文件中声明<br /><br />最后:PORTH中的各个中断没有优先级,但你可以将HPRIO设置为0xcc将PORTH中断提升到IRQ中的最高级别.<br /><br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

15

帖子

0

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