28027上电进入非法中断(ADC+SPI+TIMER)

2019-03-24 11:08发布

不知道为什么,每次每一次上电的时候,会进入非法中断,在ADC的打开的时候(其实和SPI和定时器没什么关系)
第一次开机(上电或调试)---->进入非法中断--->把ADC模块屏蔽或下载一个其他正常的工程到FLASH--->正常--->重新下载这个“有错的”工程或调试到FLASH--->正常

MAIN函数
  1. void main(void)
  2. {

  3.   InitSysCtrl();
  4.   InitGpio();
  5.   InitSciaGpio();

  6.   DINT;
  7.   InitPieCtrl();
  8.   PieCtrlRegs.PIEIER1.bit.INTx7 = 1;
  9.   InitPieVectTable();
  10.   EALLOW;
  11.   PieVectTable.TINT0 = &cpu_timer0_isr;
  12.   EDIS;
  13.   IER |= M_INT1;
  14.   InitSpiGpio();
  15.   InitSpi();
  16.   SpiaRegs.SPITXBUF=0x00;
  17.   //spi_fifo_init();
  18.   
复制代码
  1. void ConfigAdc(void)
  2. {
  3.   EALLOW;
  4.   //通道0
  5.   AdcRegs.ADCSOC0CTL.bit.CHSEL = 0;
  6.   AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 1;
  7.   AdcRegs.ADCSOC0CTL.bit.ACQPS = 6;

  8.   EDIS;
  9. }
复制代码

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
liangzr
2019-03-24 19:57
< :TI_MSP430_内容页_SA7 -->
ltbytyn 发表于 2014-7-30 12:39
先不说你问题,你的程序结构有问题。在定时器里面刷屏,主程序不停的读AD采样值。正常结构定时器启动AD,在 ...

嗯,谢谢指导。我之所以在定时器里刷屏,就是觉得刷屏的时候应该小于100ms,而在While里一直刷屏的话,频率会更高。(硬件SPI的频率设置到了15MHz)
我按照您说的改了下程序,把刷屏程序写到while里,然后加了个50ms的DELAY_US(50000)(不加的话显示频率太高,屏幕已经花了),显示还算正常,但上述问题仍然存在,我把仿真器拨下来再插上去,屏幕已经不显示了(flash启动后进入了非法中断),debug后看到果然一启动就进非法中断。

一周热门 更多>

相关问题

    相关文章