📄 main.c
字号:
#include <hidef.h> /* common defines and macros */
#include <mc9s12dg128.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
#include"sci.h"
uchar ad_value;
uchar vlt;
uchar *ADValue[8];
void AD_Init(void); //AD初始化
void display(void);
void delay(void);
void main(void) {
AD_Init(); //AD初始化
SciInit();
DDRB=0xFF;
PORTB=0xff;
EnableInterrupts;
for(;;)
{
while(!ATD0STAT1_CCF0); //等待转换结束
ad_value= *ADValue[0];
PORTB = ad_value; //在B口显示转换值
display();
}
}
/*void AD_Init(void) //初始化
{
ATD0CTL2=0xC0; //
ATD0CTL3=0x20; //每个序列4次转换, No FIFO, Freeze模式下继续转换
ATD0CTL4=0x83; //8位精度, 2个时钟, ATDClock=[BusClock*0.5]/[PRS+1] ; PRS=3, divider=8
ATD0CTL5=0xA0; //右对齐无符号,单通道采样,通道0
ATD0DIEN=0x00; //禁止数字输入
} */
void display(void){
vlt=ad_value/51;
SciTx(0x30+vlt);
}
void AD_Init(void){
ATD0CTL2 = 0xC0; //AD模块上电, 快速清零, 无等待模式, 禁止外部触发, 中断禁止
ATD0CTL3 = 0x00; // 8 bit AD
ATD0CTL4 = 0x83; // 8 bit 10010111 if bus clock=48m, 48/(24*2)=1M;
ATD0CTL5 = 0x30;
ATD0DIEN = 0x00; // ATD analog input disable
ADValue[0] = &ATD0DR0H;
ADValue[1] = &ATD0DR1H;
ADValue[2] = &ATD0DR2H;
ADValue[3] = &ATD0DR3H;
ADValue[4] = &ATD0DR4H;
ADValue[5] = &ATD0DR5H;
ADValue[6] = &ATD0DR6H;
ADValue[7] = &ATD0DR7H;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -