mini 2440 ADC中断的奇怪问题!!请教一下大家!
[复制链接]
最近在学习MINI2440的ADC功能,发现在ADC中断函数设置断点调试,程序不进ADC中断函数!!程序如下: void ADC_Init(void) { rADCCON |=(1<<14)|(49<<6)|(0<<3); //Prescaler=49,采样频率F=50MHz/(49+1),采样时间T=1/F/5=5us rSUBSRCPND |= (0x01<<10); //清子中断挂起寄存器 rINTSUBMSK &= ~(0x01<<10); //关闭子中断对ADC_S的屏蔽 ClearPending(BIT_ADC); //SRCPND、INTPND第31位是ADC的挂起寄存器 EnableIrq(BIT_ADC); //打开ADC中断,INTMSK pISR_ADC = (U32)ADCHandle; rADCCON |= 0x01;//start ADC } 注:上面的ADC_Init()函数在主函数中初始化ADC
而且更奇怪的事是,查看在 rADCCON |=(1<<14)|(49<<6)|(0<<3); 出设置断点后,单步运行这行程序后在查看ADCCON寄存器的值没有改变, 也就是说对ADCCON寄存器没有写成功!! 第二奇怪的是我使用的是ADS软件编译,重新编译时查看ADCCON寄存器的值并没与复位到寄存器的初始化状态,而是上次编译后的那个值。
请问是否有人遇到类似的问题,帮忙看看!!可能是本人遗漏了什么主要的设置,不胜感激,谢谢!!
|