adc.c

来自「卫星接受机控制卫星和LCD显示」· C语言 代码 · 共 42 行

C
42
字号
//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 + =
减小字号Ctrl + -
显示快捷键?