已经确认了,果然是IIC中断引起的, cpu.c文件中的ISR(Cpu_Interrupt)函数是对所有未处理的中断进行处理吗?可以在里面写代码吗?
在使用PE自动生成的时候,系统生成了OnRxChar,OnTxChar,OnNack三个中断函数,我以为出现中断时会自动跳进这几个函数处理,现在看起来产生前面问题的原因是没有对应VECTOR文件中的IIC中断地址的函数,导致了出现的IIC中断一直在pending状态.处理这个中断需要写一个_interrupt void I2C_ISR(void)函数,然后在这个函数中判断相应标志位再转入对应处理函数,我这样的理解对吗?在vectors.c文件中的中断函数地址表里仍然是Cpu_Interrup,是否需要把Int no.17改成I2C_ISR以与中断函数名对应? |