?? adc.c
字號:
*******************************************************************/
#include <AT91SAM7S64.H>
#include "ADC.h"
/********************************************************************
函數功能:ADC初始化函數。
入口參數:無。
返 回:無。
備 注:無。
********************************************************************/
void AdcInit(void)
{
AdcReset();
*AT91C_ADC_MR=(1<<0) //Hardware trigger selected by TRGSEL field is enabled.
|(0<<1) //TIOA Ouput of the Timer Counter Channel 0
|(0<<4) //10-bit resolution
|(0<<5) //Normal Mode
|(4<<8) //Prescaler Rate Selection, ADCClock = MCK/10 = 4.8MHz
|(24<<16) //Startup Time=(24+1)*8/ADCClock is about 20us.
|(5<<24); //Sample & Hold Time = 5/ADCClock is about 1us.
*AT91C_ADC_CHDR=0xFF; //Disable all channel.
*AT91C_ADC_CHER=(1<<6); //Enable CH6
*AT91C_ADC_IDR=0xFFFFF; //Disable all ADC interrupt.
}
/////////////////////////End of function/////////////////////////////
/********************************************************************
函數功能:軟件轉換并讀取一次ADC。
入口參數:ch:通道號。
返 回:ADC值。
備 注:無。
********************************************************************/
int AdcRead(void)
{
AdcStartConversion(); //軟件啟動轉換
while(!((*AT91C_ADC_SR)&(1<<16))); //等待轉換完畢
return *AT91C_ADC_LCDR; //讀取ADC值
}
/////////////////////////End of function/////////////////////////////
/********************************************************************
函數功能:設置DMA。
入口參數:Addr: 接收數據的緩沖區地址;Count:要接收的數量。
返 回:無。
備 注:無。
********************************************************************/
void AdcSetupDma(short int *Addr, int Count)
{
*AT91C_ADC_RPR=(unsigned int)Addr; //設置地址
*AT91C_ADC_RCR=Count; //設置數量
*AT91C_ADC_PTCR=(1<<0); //啟動接收
}
/////////////////////////End of function/////////////////////////////
/********************************************************************
函數功能:等待ADC的DMA傳輸完成。
入口參數:無。
返 回:無。
備 注:無。
********************************************************************/
void AdcWaitDmaFinish(void)
{
while((*AT91C_ADC_RCR)!=0); //當未接收完時,等待
}
/////////////////////////End of function/////////////////////////////
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -