/*! * \file pga_adc.h * * \brief The head file of pga_adc.h * * \copyright Revised BSD License, see section \ref LICENSE. * * \code * * _ __ _ ________ _ * | |/ /(_)___ / ____/ /_ (_)___ * | // / __ \/ / / __ \/ / __ \ * / |/ / / / / /___/ / / / / /_/ / * /_/|_/_/_/ /_/\____/_/ /_/_/ .___/ * /_/ * (C) 2022-2025 XinChip * * \endcode * * \author ( XinChip ) Alex-J * * \author ( XinChip ) */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __BSP_PGA_ADC_H_ #define __BSP_PGA_ADC_H_ /*----------------------------------------------------------------------------------- INCLUDE HEADE FILES ------------------------------------------------------------------------------------*/ #include "stdint.h" #include "xc60xx.h" /*------------------------------------------------------------------------------------ Macros -------------------------------------------------------------------------------------*/ #define SAMPLING_DEBUG 1 #define REC_TEST_EN 1 //录音测试,定时录音 #define ADC_CLOCK_FREQ_8M ADC_CLK_DIV_0 // ADC_FREQ_8M #define ADC_CLOCK_FREQ_4M ADC_CLK_DIV_2 // ADC_FREQ_4M #define ADC_CLOCK_FREQ_2M ADC_CLK_DIV_4 // ADC_FREQ_2M #define ADC_CLOCK_FREQ_1M ADC_CLK_DIV_8 // ADC_FREQ_1M #define ADC_CLOCK_FREQ_500K ADC_CLK_DIV_16 // ADC_FREQ_500K #define ADC_FREQ_CLOCK ADC_CLK_DIV_4 // ADC时钟选择 #define MIC_SAMPLING_8K 0 #define MIC_SAMPLING_16K 1 #define SAMPLING_TYPE MIC_SAMPLING_16K #define MIC_SAMPLING_MAX_LEN 1 * 256 //缓冲长度,根据需求调节 /*------------------------------------------------------------------------------------ TypeDef -------------------------------------------------------------------------------------*/ typedef struct { short mic_adc_buff[2][MIC_SAMPLING_MAX_LEN]; //双缓存buff,方便读取以及采样 uint16_t pga_adc_rx_index; //缓存buff下标 uint8_t save_buf_index; //双缓存buff下标,存放第几个mic_adc_buff[save_buf_index][] uint8_t buf_full_flag; uint8_t freq_con; //采样率计算 #if SAMPLING_DEBUG uint32_t pga_adc_rx_con; uint8_t rx_flag; #endif #if REC_TEST_EN || SAMPLING_DEBUG uint8_t rec_len_time; #endif } Mic_sampling_cb; /*------------------------------------------------------------------------------------ Global Variables -------------------------------------------------------------------------------------*/ extern Mic_sampling_cb m_sampling_cb; /*------------------------------------------------------------------------------------ Exported Functions -------------------------------------------------------------------------------------*/ void audio_adc_rx_dma_event_handler(void); void pga_adc_rx_event_handler(uint16_t pga_adc_val); #endif