samadc.c

来自「At91s64_ucos2.76:基于at91sam7s64芯片的uc/os移植」· C语言 代码 · 共 45 行

C
45
字号
#include "AT91SAM7S64.h"

#include "SAMadc.h"



void ADCinit(void)
{
 // clock
 AT91C_BASE_PMC->PMC_PCER=(1<<4);          // ADC
 
 // ADC
 AT91C_BASE_ADC->ADC_CR=AT91C_ADC_SWRST;
 
 // only soft trigger,10-bit resolution;sleep mode
 AT91C_BASE_ADC->ADC_MR=(15<<24)|(31<<16)|(63<<8)|(1<<5);
 
 //AT91C_BASE_ADC->ADC_CHER=0xF0;
 AT91C_BASE_ADC->ADC_CHDR=0xFF;
 
 // IRQ
 AT91C_BASE_ADC->ADC_IDR=0x000FFFFF;
}

unsigned int ADCConv(unsigned char ch)
{
 unsigned int s=0;
 
 AT91C_BASE_ADC->ADC_CHER=(1<<ch);
 
 AT91C_BASE_ADC->ADC_CR=AT91C_ADC_START;
 
 s=AT91C_BASE_ADC->ADC_SR;
 
 while(!(s&(1<<ch)))  s=AT91C_BASE_ADC->ADC_SR; // wait for conversion complete
 
 s=AT91C_BASE_ADC->ADC_LCDR;
 
 AT91C_BASE_ADC->ADC_CHDR=(1<<ch); 
 
 return s;
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?