在ARM教程中许多例子都有这样的话:VICVectCntl0=0X2E; 为什么就可以EINT0通道分配到IRQ Slot0。
VICVectCntl1=0X2F;又分配到slot几呢?还有许多教程中写的是 EXTMODE = 0X00;
EXTPOLAR = 0X02;
VICIntSelect = 0X00000000;
VICVectCntl0 = 0X20|15;
VICVectAddr0 = (int)IRQ_Eint1;
EXTINT = 0X02;
VICIntEnable = 0X00008000;
VICVectCntl0 = 0X20|15;
又是什么意思,中间|是怎么回事。0X20或15是什么。 while(1); return 0; 其实这样的: VICVectCntl0 = 0X20|15; 表示将中断号为15的EINT1为最高优先级 VICVectCnt1 = 0X20|14; 表示将中断号为14的EINT0为次最高优先级 0X0E为EINT0的中断号; 0X20 为允许该中断; 0X0F为EINT1的中断号; 0X20 为允许该中断;其实也就是要看一下中断源的号是多少,后面的数字就应该是几了。 因为向量控制寄存器的bit5是控制中断使能的,二进制数10000刚好对应0×20,所以0×20就是允许中断请求。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』