123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /*
- *********************************************************************************************************
- *
- * 模块名称 : AD7606数据采集模块
- * 文件名称 : bsp_ad7606.h
- * 版 本 : V1.0
- *
- * Copyright (C), 2013-2014, 安富莱电子 www.armfly.com
- *
- *********************************************************************************************************
- */
- #ifndef __AD7606_H
- #define __AD7606_H
- #include "interface.h"
- /* 过采样倍率 */
- typedef enum
- {
- AD_OS_NO = 0,
- AD_OS_X2 = 1,
- AD_OS_X4 = 2,
- AD_OS_X8 = 3,
- AD_OS_X16 = 4,
- AD_OS_X32 = 5,
- AD_OS_X64 = 6
- } AD7606_OS_E;
- /* AD数据采集缓冲区 FIFO */
- #define ADC_FIFO_SIZE (2 * 1024) /* 总体样本数 */
- typedef struct
- {
- uint8_t ucOS; /* 过采样倍率,0 - 6. 0表示无过采样 */
- uint8_t ucRange; /* 输入量程,0表示正负5V, 1表示正负10V */
- int16_t sNowAdc[8]; /* 当前ADC值, 有符号数 */
- } AD7606_VAR_T;
- typedef struct
- {
- /* FIFO 结构 */
- uint16_t usRead; /* 读指针 */
- uint16_t usWrite; /* 写指针 */
- uint16_t usCount; /* 新数据个数 */
- uint8_t ucFull; /* FIFO满标志 */
- int16_t sBuf[ADC_FIFO_SIZE];
- } AD7606_FIFO_T;
- void ad7606_init(void);
- void AD7606_SetOS(uint8_t _ucOS);
- void AD7606_SetInputRange(uint8_t _ucRange);
- void AD7606_Reset(void);
- void AD7606_StartConvst(void);
- void AD7606_ReadNowAdc(void);
- /* 下面的函数用于FIFO操作模式 */
- void AD7606_EnterAutoMode(uint32_t _ulFreq);
- void AD7606_StartRecord(uint32_t _ulFreq);
- void AD7606_StopRecord(void);
- uint8_t AD7606_FifoNewData(void);
- uint8_t AD7606_ReadFifo(uint16_t *_usReadAdc);
- uint8_t AD7606_FifoFull(void);
- /* 全局变量 */
- extern AD7606_VAR_T g_tAD7606;
- extern AD7606_FIFO_T g_tAdcFifo;
- #endif
- /***************************** 安富莱电子 www.armfly.com (END OF FILE) *********************************/
|