📄 atd.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 + -