打印
[资源共享]

HC89S003F4的中断控制寄存器(如IP0)详解

[复制链接]
2401|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
铁血丹心LLLL|  楼主 | 2024-1-25 13:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
HC89S003F4的中断控制寄存器 IP0 是用来配置中断优先级的寄存器。在这个寄存器中,各个位的设置决定了相应中断的优先级。以下是 IP0 寄存器的详细解释:


IP0 |= 0X30; // INT1优先级设为最高,唤醒用的中断一定要设为最高优先级。否则有可能唤醒不成功


这段代码将 IP0 寄存器的高两位(位6和位5)设置为1,其他位不变。具体解释如下:
  • 位7 (T0IP):
    • Timer0 中断优先级位。本例中没有设置,保持不变。
  • 位6 (T1IP):
    • Timer1 中断优先级位。设置为1,表示将 Timer1 中断的优先级设为最高。
  • 位5 (T2IP):
    • Timer2 中断优先级位。设置为1,表示将 Timer2 中断的优先级设为最高。
  • 位4 (INT0IP):
    • 外部中断0(INT0)中断优先级位。本例中没有设置,保持不变。
  • 位3 (INT1IP):
    • 外部中断1(INT1)中断优先级位。设置为1,表示将外部中断1的优先级设为最高。
  • 位2 (ADCIP):
    • ADC 转换完成中断优先级位。本例中没有设置,保持不变。
  • 位1 (ESIP):
    • 串口(UART)中断优先级位。本例中没有设置,保持不变。
  • 位0 (ET0IP):
    • 定时器0 溢出中断优先级位。本例中没有设置,保持不变。

这段代码的目的是将 Timer1 和外部中断1 (INT1) 的中断优先级设为最高。这对于掉电唤醒例程中使用的 INT1 中断至关重要,因为唤醒用的中断应该具有最高的优先级,以确保在唤醒时能够正常执行相应的中断服务程序。

使用特权

评论回复
沙发
sunnysun2018| | 2024-3-10 13:40 | 只看该作者
0x30 ---》  0b0011   0000

使用特权

评论回复
板凳
铁血丹心LLLL|  楼主 | 2024-3-21 13:39 | 只看该作者
通过按位或操作(|=)将0x30(二进制形式为00110000)与IP0寄存器进行按位或操作,从而将IP0寄存器的位6和位5设置为1,其他位不变。

使用特权

评论回复
地板
daichaodai| | 2024-3-22 08:17 | 只看该作者
芯圣没有驱动库函数吗?

使用特权

评论回复
5
Jacquetry| | 2024-3-28 10:32 | 只看该作者
51的芯片一般都没有库吧

使用特权

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

本版积分规则

66

主题

487

帖子

1

粉丝