?? adconchip.c
字號:
#include"config.h"
//需要幾個全局變量來控制ADC的工作模式
extern uint8 adcPowerdownMode;
extern uint8 adcStartWay;
/***
注意BURST在當(dāng)前程序中都設(shè)置為0,
啟動方式由軟件控制,
而不是重復(fù)轉(zhuǎn)換通道模式
***/
/***
ADCR 寄存器(P268 基礎(chǔ)教程)
0:7 SEL 通道選擇
15:8 CLKDIV 工作時鐘<4.5MHz
16 BURST 0:軟件控制ADC轉(zhuǎn)換;1:重復(fù)轉(zhuǎn)換通道
19:17 CLKS 轉(zhuǎn)換使用的時鐘數(shù)、轉(zhuǎn)換精度
21: PDN 1:A/D轉(zhuǎn)換器處于正常工作模式 0:處于掉電模式
23:22 TEST1:0 00 正常模式
26:24 START A/D轉(zhuǎn)換是否啟動、何時啟動
000 不啟動(PDN掉電模式)
001 立即啟動轉(zhuǎn)換
010 ADCR寄存器27選擇的邊沿出現(xiàn)在P0.16\EINT0\MAT0.2\CAP0.2腳時啟動轉(zhuǎn)換
011 ADCR寄存器27選擇的邊沿出現(xiàn)在P0,22\TD3\CAP0.0\MAT0.0腳時啟動轉(zhuǎn)換
注意: START的值勤為100--111時MAT信號不必輸出到管腳上
100 ADCR寄存器2位27選擇的邊沿出現(xiàn)在MAT0.1時啟動轉(zhuǎn)換
101 ADCR寄存器2位27選擇的邊沿出現(xiàn)在MAT0.3時啟動轉(zhuǎn)換
110 ADCR寄存器2位27選擇的邊沿出現(xiàn)在MAT1.0時啟動轉(zhuǎn)換
111 ADCR寄存器2位27選擇的邊沿出現(xiàn)在MAT1.1時啟動轉(zhuǎn)換
27: EDGE 0:在所選CAP/MAT信號的下降沿啟動轉(zhuǎn)換
1:在所選CAP/MAT信號的上升沿啟動轉(zhuǎn)換
***/
void startAdc(uint8 channel,uint8 startMode,uint8 adcStartEdge)
{
ADCR=0X00000000;
if(channel>8)
channel=1;
channel-=1;
ADCR|=(1<<channel) |//通道選擇
((Fpclk / 1000000 - 1) << 8) |//時鐘頻率1MHz
(adcPowerdownMode<<21); //ADC處于正常工作模式還是掉電模式
if(adcStartEdge)//如果是上升沿啟動
ADCR|=1<<27;
if(startMode<=7)//啟動方式是否合理
ADCR|=startMode<<24;//設(shè)置啟動方式
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -