在为我的项目设置IOC(使用MCC)时,我注意到了这一点,所以我继续创建了一个新示例项目,只启用了IOC中断,并且看到了生成的相同代码。处理器=PIC16LF1705,MCC版本=3.16。当我设置这个项目时,我所做的就是打开MCC,选择中断模块,启用IOC,转到Pin模块,设置RA2作为输入,然后在寄存器设置中将IOCAN2设置为“启用”。然后,我生成了代码。下面是我看到的生成了奇怪的代码。a)inter._manager.c-INTERRUPT_Inter.Manager():if(INTCONbits.IOCIE==1&&INTCONbits.IOCIF==1){PIN_MANAGER_IOC();//clearglobalinter.-on-change flag INTCONbits.IOCIF=0;}其他...COM.:IOCIF:IOCIF位是只读的。MCU将清除此位时,只有所有的个人PIN标志是明确的。此写操作不会做任何事.b)pin_manager.c-PIN_MANAGER_PIN_MANAGER_IOC()//中断,对于组IOCAFif(IOCAF比特.IOCAF比特.IOCAF2 IOCAF2==1){IOCACAF2==1){IOCAF2_ISR({IOCACACACAF2=1){IOCACAF2_ISR({IOCAF2_IOCAF2.{IOCAF2_ISR(){IOCACACAF2.{IOCACAF2_ISR({IOCACAF2.{IOCAF2_ISR(){IOCACACACAF2.{IOCAF2.{IOCASR();}…注释:唯一的有效条件是第一个条件,即“F”(FLAG)的测试。测试IOCxN和IOCxP寄存器没有任何意义——这些是设置寄存器,用于配置中断应该在负边缘还是正边缘.c)pin_manager.c-IOCAN2_ISR()、IOCAN2_Se
tinter.Handler()、IOCAN2_DefaultInter.Handler()、IOCAP2_ISR()、IOCAP2_SetInt上激活。ErrUpthDANDLE()、IOCAP2DeFultCuffthTyle()注释:这些函数没有意义(与上面的项(B)相关)。中断不是由IOXN和IOCXP安装寄存器生成的。