#ifndef __SAMPPROCESS_H__ #define __SAMPPROCESS_H__ #if 0 typedef struct { u8 Gain; //ADC采样放大系数 u8 PChan; //ADC正输入通道 u8 NChan; //ADC负输入通道 u8 SPS; //ADC采样速率 } ADC_BaseConfig_TypeDef; typedef struct { u8 Gain0; //ADC_0采样放大系数 u8 PChan0; //ADC_0正输入通道 u8 NChan0; //ADC_0负输入通道 u8 Gain1; //ADC_1采样放大系数 u8 PChan1; //ADC_1正输入通道 u8 NChan1; //ADC_1负输入通道 u8 SPS; //采样速率 } ADC_SyncConfig_TypeDef; enum { C = 0 , R, H, A, B, D, E, F, TCode_Count }; typedef struct { ADC_BaseConfig_TypeDef adcBaseCfg; ADC_SyncConfig_TypeDef adcSyncCfg; //ADC具体配置 u32 TempCode[TCode_Count]; //内码临时存储区 u8 SkipSampNum ; //跳过前采样个数 /*中断方式数据定义*/ u8 CounterMax; //采样最大个数 u8 Counter; //采样个数 u32 ADCBuffer[2]; //采样值 /*DMA方式数据定义*/ u32 DMA_ADC_Buffer[2][70]; u8 DMA_ADC_adcflag[2]; u8 DMA_ADC_SampLen; u8 DMA_ADC_Exponent; }__Samp_Buf_TypeDef;//样本 //// 中断模式(单通道) //typedef struct { // ADC_BaseConfig_TypeDef adc_cfg; // u8 skip_num ; // u8 counter; //采样个数 // u32 adc_buffer; //采样值 //}__IntSingleSampleData_t; //// 中断模式(双 ADC 同步) //typedef struct { // ADC_SyncConfig_TypeDef adc_cfg; // u8 skip_num ; // u8 counter; //采样个数 // u32 adc_buffer[2]; //采样值 //}__IntSyncSampleData_t; //// 单 ADC + DMA 模式专用数据 //typedef struct { // ADC_BaseConfig_TypeDef adc_cfg; // u32 dma_buffer[128]; // u8 adcflag ; // u8 samp_len; // u8 exponent; // u8 skip_num; //}__SingleDmaSampleData_t; //// 双 ADC 同步 + DMA 模式专用数据 //typedef struct { // ADC_SyncConfig_TypeDef adc_cfg; // u32 dma_buffer[2][128]; // [0]=ADC0, [1]=ADC1 // u8 adcflag[2] ; // u8 samp_len; // u8 exponent; // u8 skip_num; //}__DualSyncDmaSampleData_t; //extern __IntSingleSampleData_t sampleData1; //extern __IntSyncSampleData_t sampleData2; //extern __SingleDmaSampleData_t sampleData3; //extern __DualSyncDmaSampleData_t sampleData4; extern __Samp_Buf_TypeDef sampleData; u16 GetAdcGain(u16 gianX); /*ADC配置初始化*/ void SetSampleSiagnlForSingleADC( ADC_BaseConfig_TypeDef* adc_cfg); void SetSampleSiagnlForSyncADC( ADC_SyncConfig_TypeDef* adc_cfg); /*中断方式*/ void StartADC0SampingData(void); void StartADC1SampingData(void); void StartADCSyncSampingData(void); void ReadSamplingData(void);//读取采样数据 /*DMA方式*/ void StartDMAForADC0SampingData(void); void StartDMAForADC1SampingData(void); void StartDMAForADCSyncSampingData(void); u8 WaitADC0DMAComplete(void); u8 WaitADC1DMAComplete(void); u8 WaitSyncDMAComplete(void); u16 DMA_ComputeSampleData_ADC0(void); u16 DMA_ComputeSampleData_ADC1(void); /*DMA ADC序列方式*/ void StartDMA_ForADC0_SeqSample(void); void ADC_ReadSeqData(u16* SeqData ,u8 SeqNumCount) ; #endif #endif