📄 adc.c
字号:
//adc.c
#include "adc.h"
/*
temp: ADC0
RSSI_1: ADC4
RSSI_2: ADC5
DET_IN: ADC6
DET_OUT: ADC7
*/
AT91PS_ADC a_pADC = AT91C_BASE_ADC;
AT91PS_PMC a_pPMC = AT91C_BASE_PMC;
AT91PS_PDC u_pPDC2= AT91C_BASE_PDC_ADC;
#define ADC_DMA_ADDR 0x0400
void InitADC(void) {
a_pADC->ADC_CR = 0x2; // 设置启动位
a_pADC->ADC_MR = 0x3f00; // 设置方式寄存器, 10位, MCK/128
a_pADC->ADC_CHER = 0xf1; // 允许AD0,AD4,AD5,AD6,AD7
u_pPDC2->PDC_PTCR = AT91C_PDC_RXTEN; // 允许RX进行PDC传送请求
u_pPDC2->PDC_RPR = (unsigned int)adc_dma;
u_pPDC2->PDC_RCR = MAX_ADC_BUF;
u_pPDC2->PDC_RNCR = MAX_ADC_BUF;
u_pPDC2->PDC_RNPR = (unsigned int)adc_dma;
}
/*
unsigned int GetValue_chanel4() { // AD4 for debug
a_pADC->ADC_CR = 0x2; // 设置启动位
while(!(a_pADC->ADC_SR&0x10)); // 等待转换完成
return a_pADC->ADC_CDR4;
}
unsigned int GetValue_chanel5() { // AD5 for debug
a_pADC->ADC_CR = 0x2; // 设置启动位
while(!(a_pADC->ADC_SR&0x20)); // 等待转换完成
return a_pADC->ADC_CDR5;
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -