📄 samadc.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -