|
PIE把96个中断分成12组INT1~INT12,每组管理8个中断INT*.1~NT*.8,这8个中断共用CPU中断INT1~INT12,每组都可打开或不打开这组的中断:PIEACKx。
分析:如首先需要打开第一组INT1的第1个中断INT1.1对应外设中断使能寄存器,当第一组INT1的第1个中断INT1.1外设产生中断后,首先将标志位PIEIFR1置位,然后检查中断是否打开PIEIER1,再检查第一组的中断总开关PIEACK1是否打开
0表示打开(中断程序处理完后软件写1清零),可以相应中断
1(由硬件置1,当中断来了会自动置1)表示不打开,正在响应本组内别的中断,在先处理完中断后,可以相应中断,
若PIEACK1打开了则将中断上报到CPU中断模块,首先将第一组IFR1中断标志置位,然后看这组的中断允许位IER1是否打开,若打开了才将中断上报到CPU,当然CPU还有一个总中断INTM需要打开。其实这就像一个文件需要三个领导批示一样,任意一级领导的不同意都不可能被送到上一级领导。
还有PIE的中断标志PIEIFRx是自动硬件置一和清零的,但是PIEACKx则需要手动清零,还有外设的中断标志位也是要手动清零的,由此知道:有些标志位是自动清零的有些标志位是硬件自动清零的。
|
|