智能车制作

标题: MC9SXS128 10位AD程序问题,AD读取的高位跳动 [打印本页]

作者: youranlala    时间: 2014-4-7 10:30
标题: MC9SXS128 10位AD程序问题,AD读取的高位跳动
程序如下,求大神指点:
//*/
/***---------------初始化程序---------------***/
void InitBusClk(void) {
  CLKSEL=0X80;               //PLLSEL  1 : Bus Clock=PLLCLK/2
                              //         0 : Bus Clock=OSCCLK/2
  PLLCTL_PLLON=1;           //开启PLL
  SYNR=0;
  REFDV=0X03;               //OSCCLK=16MHz
                             //PLLCLK=2*OSCCLK*[(1+SYNR)/(1+REFDV]=32/4=8MHz

  while(!(CRGFLG_LOCK==1));   //直到LOCK=1,when PLL is ready,退出循环
  
  CLKSEL_PLLSEL=1;        //PLLSEL  1 : Bus Clock=PLLCLK/2=8MHz/2=4MHz
                            //        0 : Bus Clock=OSCCLK/2=16M/2=8MHz
}

void InitAD(void){
     
   ATD0CTL2 = 0XC3;         

//  110 000 11   启动A/D, 快速清除标志位,无等待模式, 外部触发禁止(bit2=0)
      //  中断开放(bit1=1,bit0=1)         
      //  bit1 :ATD Sequence Complete Interrupt Enable            
      //  bit0 :ATD Sequence Complete Interrupt Flag
   
ATD0CTL3 = 0X0C;         
// 0 0001 1 00  转换序列为 1 、 FIFO模式启动,冻结模式下继续转换

ATD0CTL4 = 0X61;           // 1 11 00001   10位精度, 16AD采样时间
                             //            总线(1+1)*2 = 4 分频,AD时钟 = 1M

ATD0CTL5 = 0XA0;         
// 1010 0111    右对齐,无符号,连续转换,单通道, 起始通道 ATD0

   ATD0DIEN = 0X00;         // 数字输入 disabled
}

/***---------------主程序---------------***/
void main(void) {
  /* put your own code here */
  DisableInterrupts;            //关中断
  
  InitBusClk();
  InitAD();
              
  DDRB=0XFF;              //设B口为输出口
  PORTB=0X00;
  
    EnableInterrupts;          //开中断

    for(;;){        
   
       //while(!ATD0STAT2L_CCF7);
       PORTB=(byte)AD_Data;        //B口显示转换结构
    }
}

/***---------------中断服务程序---------------***/

#pragma CODE_SEG NON_BANKED

void  interrupt  22  IntAD(void)
{            // AD转换的中断向量号为33
  
  DisableInterrupts;                         //关中断
  while(!ATD0STAT2_CCF0);
  AD_Data=ATD0DR0H;                    //读取AD转换结果
  AD_Data1=ATD0DR0L;                    //读取AD转换结果
  EnableInterrupts;                         //开中断
}

#pragma CODE_SEG DEFAULT





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2