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 中断至关重要,因为唤醒用的中断应该具有最高的优先级,以确保在唤醒时能够正常执行相应的中断服务程序。
|