📄 ad.h
字号:
//AD初始化和操作类
#include <hidef.h> /* common defines and macros */
#include <mc9s12dg128.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
word AD_wData[9]; //全局变量存放 AD0,AD1,AD2的结果
void AD_Init(void) //AD初始化
{
//控制寄存器2: 上电,标志位快速清零,开中断
ATD0CTL2 = (ATD0CTL2_ADPU_MASK|ATD0CTL2_AFFC_MASK|ATD0CTL2_ASCIE_MASK);
ATD1CTL2 = (ATD1CTL2_ADPU_MASK|ATD1CTL2_AFFC_MASK|ATD1CTL2_ASCIE_MASK);
//控制寄存器3:转换序列长度为3
ATD0CTL3 =0x78;// (ATD0CTL3_S2C_MASK|ATD0CTL3_S1C_MASK);
ATD1CTL3 =0x78;// (ATD1CTL3_S2C_MASK|ATD1CTL3_S1C_MASK);
//控制寄存器4:
ATD0CTL4 = (ATD0CTL4_SRES8_MASK|ATD0CTL4_PRS1_MASK|ATD0CTL4_PRS0_MASK);
ATD1CTL4 = (ATD1CTL4_SRES8_MASK|ATD1CTL4_PRS1_MASK|ATD1CTL4_PRS0_MASK);
//控制寄存器5:
ATD0CTL5 = (ATD0CTL5_DJM_MASK|ATD0CTL5_SCAN_MASK|ATD0CTL5_MULT_MASK);
ATD1CTL5 = (ATD1CTL5_DJM_MASK|ATD1CTL5_SCAN_MASK|ATD1CTL5_MULT_MASK);
ATD0DIEN=0x00; // 禁止数字输入缓冲
ATD1DIEN=0x00; // 禁止数字输入缓冲
}
#pragma CODE_SEG NON_BANKED //中断服务程序
#pragma TRAP_PROC
void interrupt 22 Int_AD0(void)
{
AD_wData[0] = ATD0DR0; //将结果寄存器中的值存放到数组中
AD_wData[1] = ATD0DR1; //将结果寄存器中的值存放到数组中
AD_wData[2] = ATD0DR2; //将结果寄存器中的值存放到数组中
AD_wData[3] = ATD0DR3;
AD_wData[4] = ATD0DR4;
AD_wData[5] = ATD0DR5;
AD_wData[6] = ATD0DR6;
AD_wData[7] = ATD0DR7;
AD_wData[8] = ATD1DR0;
// PWM_Init();
}
#pragma CODE_SEG DEFAULT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -