⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atd.c

📁 本人s12的一部分机器人巡线程序
💻 C
字号:
/***********************************************************/
/***********************************************************/  
/***********************************************************/ 
/*ATD Initlization with Interrupt mode
    ATD0_Init_Int();
    ATD1_Init_Int();  
中断方式下的AD转换初始化*/
/**********************************************************/
/*************ATD0_Init()*****************/
void ATD0_Init_Int(void)
    {
        //控制寄存器2:    上电,标志位快速清零,开中断
        ATD0CTL2  = 0xC2;//
        //控制寄存器3:转换序列长度为3,FIFO模式                                
        ATD0CTL3  = 0x19;//
	    //控制寄存器4:
        ATD0CTL4  =0xA8;// 
	    //控制寄存器5:
        ATD0CTL5  = 0xB0;//
	
        ATD0DIEN=0x00;   // 禁止数字输入缓冲
    }
/*************ATD1_Init()*****************/
void ATD1_Init_Int(void)
    {
        //控制寄存器2:    上电,标志位快速清零,开中断
        ATD1CTL2  = 0xC2;//
        //控制寄存器3:转换序列长度为3,FIFO模式
        ATD1CTL3  = 0x19;//
	    //控制寄存器4:
        ATD1CTL4  = 0xA8;//
	    //控制寄存器5:
        ATD1CTL5  = 0xB0;//
	
        ATD1DIEN=0x00;   // 禁止数字输入缓冲
    }
/**********************************************************/ 
/*ATD Initlization with Rogatory mode
    ATD0_Init_Rog();
    ATD1_Init_Rog();  
查询方式下的AD转换初始化*/
/**********************************************************/
/**************ATD0_Init_Rog()**************/
void ATD0_Init_Rog(void)
    {
    /*ATD1 Initilization*/
        //控制寄存器2:    上电,标志位快速清零,不开中断
        ATD0CTL2  = 0xC0;//
        //控制寄存器3:转换序列长度为8,FIFO模式                                
        ATD0CTL3  = 0x43;//进入后台调试模式的时候冻结AD转换
	    //控制寄存器4:
        ATD0CTL4  =0xA8;//时钟分频 
	    //控制寄存器5:
        ATD0CTL5  = 0xB0;//多通道同时转换
	
        ATD0DIEN=0x00;   // 禁止数字输入缓冲
    }
/**************ATD1_Init_Rog()**************/    
void ATD1_Init_Rog(void)
    {
    /*ATD1 Initilization*/
        //控制寄存器2:    上电,标志位快速清零,不开中断
        ATD1CTL2  = 0xC0;//
        //控制寄存器3:转换序列长度为8,FIFO模式
        ATD1CTL3  = 0x43;//进入后台调试模式的时候冻结AD转换
	    //控制寄存器4:
        ATD1CTL4  = 0xA8;//多通道同时转换
	    //控制寄存器5:
        ATD1CTL5  = 0xB0;//
	
        ATD1DIEN=0x00;   // 禁止数字输入缓冲
    }    
    
/***********************************************************/
/***************Get ATD0 convertion value with Rogatory mode***********/    
uchar AD_bData0[9];
void ATD0_Get_Rog(void)
  {
    AD_bData0[0]=ATD0DR0L;
    AD_bData0[8]=ATD0DR0H;
    AD_bData0[1]=ATD0DR1L;
    AD_bData0[8]=ATD0DR1H;
    AD_bData0[2]=ATD0DR2L;
    AD_bData0[8]=ATD0DR2H;
    AD_bData0[3]=ATD0DR3L;
    AD_bData0[8]=ATD0DR3H;
    AD_bData0[4]=ATD0DR4L;
    AD_bData0[8]=ATD0DR4H;
    AD_bData0[5]=ATD0DR5L;
    AD_bData0[8]=ATD0DR5H;
    AD_bData0[6]=ATD0DR6L;
    AD_bData0[8]=ATD0DR6H;
    AD_bData0[7]=ATD0DR7L;
    AD_bData0[8]=ATD0DR7H;
    }

/***************Get ATD0 convertion value with Rogatory mode***********/    
uchar AD_bData1[9];
void ATD1_Get_Rog(void)
  {
  /*Road massage 8 to last from ATD1*/
    AD_bData1[0]=ATD1DR0L;
    AD_bData1[8]=ATD1DR0H;
    AD_bData1[1]=ATD1DR1L;
    AD_bData1[8]=ATD1DR1H;
    AD_bData1[2]=ATD1DR2L;
    AD_bData1[8]=ATD1DR2H;
    AD_bData1[3]=ATD1DR3L;
    AD_bData1[8]=ATD1DR3H;
    AD_bData1[4]=ATD1DR4L;
    AD_bData1[8]=ATD1DR4H;
    AD_bData1[5]=ATD1DR5L;
    AD_bData1[8]=ATD1DR5H;
    AD_bData1[6]=ATD1DR6L;
    AD_bData1[8]=ATD1DR6H;
    AD_bData1[7]=ATD1DR7L;
    AD_bData1[8]=ATD1DR7H;
  }

/*************************************************************/
/*ATD0 Interrupt */
/*AD转换0中断*/
/*************************************************************/
#pragma CODE_SEG NON_BANKED//
#pragma TRAP_PROC//
void Int_AD0(void)
{
    AD_bData0[0]=ATD0DR0L;
    AD_bData0[8]=ATD0DR0H;
    AD_bData0[1]=ATD0DR1L;
    AD_bData0[8]=ATD0DR1H;
    AD_bData0[2]=ATD0DR2L;
    AD_bData0[8]=ATD0DR2H;
    AD_bData0[3]=ATD0DR3L;
    AD_bData0[8]=ATD0DR3H;
    AD_bData0[4]=ATD0DR4L;
    AD_bData0[8]=ATD0DR4H;
    AD_bData0[5]=ATD0DR5L;
    AD_bData0[8]=ATD0DR5H;
    AD_bData0[6]=ATD0DR6L;
    AD_bData0[8]=ATD0DR6H;
    AD_bData0[7]=ATD0DR7L;
    AD_bData0[8]=ATD0DR7H;

}

/*************************************************************/
/*ATD1 Interrupt */
/*AD转换1中断*/
/*************************************************************/
void Int_AD1(void)
{
    AD_bData1[0]=ATD1DR0L;
    AD_bData1[8]=ATD1DR0H;
    AD_bData1[1]=ATD1DR1L;
    AD_bData1[8]=ATD1DR1H;
    AD_bData1[2]=ATD1DR2L;
    AD_bData1[8]=ATD1DR2H;
    AD_bData1[3]=ATD1DR3L;
    AD_bData1[8]=ATD1DR3H;
    AD_bData1[4]=ATD1DR4L;
    AD_bData1[8]=ATD1DR4H;
    AD_bData1[5]=ATD1DR5L;
    AD_bData1[8]=ATD1DR5H;
    AD_bData1[6]=ATD1DR6L;
    AD_bData1[8]=ATD1DR6H;
    AD_bData1[7]=ATD1DR7L;
    AD_bData1[8]=ATD1DR7H;
}
#pragma CODE_SEG DEFAULT//


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -