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 + -
显示快捷键?