主题 : ADC初始化问题,进不了ADC中断! 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 45210
精华: 0
发帖: 40
金钱: 200 两
威望: 40 点
综合积分: 80 分
注册时间: 2011-05-03
最后登录: 2024-06-26
楼主  发表于: 2012-02-14 20:42

 ADC初始化问题,进不了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寄存器的值并没与复位到寄存器的初始化状态,而是上次编译后的那个值。

请问是否有人遇到类似的问题,帮忙看看!!可能是本人遗漏了什么主要的设置,不胜感激,谢谢!!