?? 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 + -