不知道为什么,每次每一次上电的时候,会进入非法中断,在ADC的打开的时候(其实和SPI和定时器没什么关系)
第一次开机(上电或调试)---->进入非法中断--->把ADC模块屏蔽或下载一个其他正常的工程到FLASH--->正常--->重新下载这个“有错的”工程或调试到FLASH--->正常
MAIN函数
- void main(void)
- {
- InitSysCtrl();
- InitGpio();
- InitSciaGpio();
- DINT;
- InitPieCtrl();
- PieCtrlRegs.PIEIER1.bit.INTx7 = 1;
- InitPieVectTable();
- EALLOW;
- PieVectTable.TINT0 = &cpu_timer0_isr;
- EDIS;
- IER |= M_INT1;
- InitSpiGpio();
- InitSpi();
- SpiaRegs.SPITXBUF=0x00;
- //spi_fifo_init();
-
复制代码- void ConfigAdc(void)
- {
- EALLOW;
- //通道0
- AdcRegs.ADCSOC0CTL.bit.CHSEL = 0;
- AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 1;
- AdcRegs.ADCSOC0CTL.bit.ACQPS = 6;
- EDIS;
- }
复制代码
此帖出自
小平头技术问答
嗯,谢谢指导。我之所以在定时器里刷屏,就是觉得刷屏的时候应该小于100ms,而在While里一直刷屏的话,频率会更高。(硬件SPI的频率设置到了15MHz)
我按照您说的改了下程序,把刷屏程序写到while里,然后加了个50ms的DELAY_US(50000)(不加的话显示频率太高,屏幕已经花了),显示还算正常,但上述问题仍然存在,我把仿真器拨下来再插上去,屏幕已经不显示了(flash启动后进入了非法中断),debug后看到果然一启动就进非法中断。
一周热门 更多>