126 lines
3.0 KiB
C
126 lines
3.0 KiB
C
#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 |