📄 main.c
字号:
#include <hidef.h> /* common defines and macros */
#include <mc9s12dg128.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
word AD_wData[8]=0;
void AD0_Init(void) //AD初始化
{
//控制寄存器2: 上电,标志位快速清零,开中断
ATD0CTL2 = (ATD0CTL2_ADPU_MASK|ATD0CTL2_AFFC_MASK|ATD0CTL2_ASCIE_MASK);
//控制寄存器3:转换序列长度为3 //FIFO模式
ATD0CTL3 = (ATD0CTL3_S8C_MASK);//|ATD0CTL3_S1C_MASK);//|ATD0CTL3_FIFO_MASK);
//控制寄存器4: AD_CLK(0.5M~2M)=Bus_CLK/(2/PR+1) 24M/2/(7+1)=1.5M
//ATD0CTL4 = (ATD0CTL4_SRES8_MASK|ATD0CTL4_PRS2|ATD0CTL4_PRS1_MASK|ATD0CTL4_PRS0_MASK);
ATD0CTL4 = (ATD0CTL4_PRS2|ATD0CTL4_PRS1_MASK|ATD0CTL4_PRS0_MASK);
//控制寄存器5:
ATD0CTL5 = (ATD0CTL5_DJM_MASK|ATD0CTL5_SCAN_MASK|ATD0CTL5_MULT_MASK);
ATD0DIEN=0x00; // 禁止数字输入缓冲
}
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;
}
void main(void) {
AD0_Init() ;
DDRB=0XFF;
PORTB=0XFF;
/* put your own code here */
EnableInterrupts;
for(;;) {
int i ;
for(i=0;i<8;i++){
if (AD_wData[i]>80) PORTB=(char) AD_wData[i];
}
} /* wait forever */
/* please make sure that you never leave this function */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -