打印

TI C2833x介绍---复位与中断(10)

[复制链接]
1375|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gaochy1126|  楼主 | 2012-7-21 12:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TI, pi, CPU, ck, AC
准则3:使用PIEIER禁止中断 根据是否去掉中断的使能位,又分为两种处理方法:
方法1:使用PIEIER禁止中断,但是保留对应的中断标志位
这种方法的特点是中断不会丢失,需要以下的步骤:
1. 禁止全局中断(INTM = 1).
2. 清除PIEIERx.y位以禁止特定的外设中断;可以同时对一个组内的多个中断进行操作,即对整个PIEIERx寄存器进行“或”操作的赋值。用或操作是为了不会误操作到与本次程序执行的目的无关的位。
3. 循环等待5个时钟周期以确保所有送入CPU的中断的标志位可以在CPU IFR中正确操作。
4. 清除前面组所对应的CPU的IFRx位。
5. 清除外设中断组的PIEACKx 应答位。Step e. Clear the PIEACKx bit for the peripheral group.
6. 使能全局中断(INTM = 0).
方法2:使用PIEIER禁止中断,并清除对应的中断标志位
这种方法也叫对中断的“软”复位,其步骤是:
1. 禁止全局中断(INTM = 1).
2. 置位EALLOW位
3. 暂时修改PIE向量表指向一个空的中断服务子程序,这个程序只执行一个返回操作(这个方法上次提到了)。此方法的有点在于可以安全修改单独的PIEIFRx.y位,而不影响组内的其它中断。
4. 清除外设寄存器中的中断使能位。
5. 使能全局中断(INTM = 0)。
6. 等待所暂时设置的空ISR响应中断事件。
7. 禁止全局中断(INTM = 1).
8. 将PIE中断向量表恢复默认状态。
9. 清除EALLOW位。
10. 禁止外设中断对应的PIEIER位。
11. 清除外设中断对应的IFR位。
Ps:这里也可以看出,与外设有关的IER,IFR这些位前面都带有外设或者PIE这样的前缀,而与CPU直接相关的寄存器命名则直接、简单。
12. 清除PIE组的中断应答位PIEACK。
13. 使能全局中断。

相关帖子

沙发
益友电子| | 2012-7-21 18:03 | 只看该作者
飘过学习了!

使用特权

评论回复
板凳
beiwaroad| | 2012-7-23 20:50 | 只看该作者
用用就能理解了

使用特权

评论回复
地板
xichengmadia| | 2012-7-23 20:56 | 只看该作者
怎么只有一条准则啊

使用特权

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

本版积分规则

1030

主题

11276

帖子

25

粉丝