⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc.c

📁 卫星接受机控制卫星和LCD显示
💻 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 + -