ad7606.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /*
  2. *********************************************************************************************************
  3. *
  4. * 模块名称 : AD7606数据采集模块
  5. * 文件名称 : bsp_ad7606.h
  6. * 版 本 : V1.0
  7. *
  8. * Copyright (C), 2013-2014, 安富莱电子 www.armfly.com
  9. *
  10. *********************************************************************************************************
  11. */
  12. #ifndef __AD7606_H
  13. #define __AD7606_H
  14. #include "interface.h"
  15. /* 过采样倍率 */
  16. typedef enum
  17. {
  18. AD_OS_NO = 0,
  19. AD_OS_X2 = 1,
  20. AD_OS_X4 = 2,
  21. AD_OS_X8 = 3,
  22. AD_OS_X16 = 4,
  23. AD_OS_X32 = 5,
  24. AD_OS_X64 = 6
  25. } AD7606_OS_E;
  26. /* AD数据采集缓冲区 FIFO */
  27. #define ADC_FIFO_SIZE (2 * 1024) /* 总体样本数 */
  28. typedef struct
  29. {
  30. uint8_t ucOS; /* 过采样倍率,0 - 6. 0表示无过采样 */
  31. uint8_t ucRange; /* 输入量程,0表示正负5V, 1表示正负10V */
  32. int16_t sNowAdc[8]; /* 当前ADC值, 有符号数 */
  33. } AD7606_VAR_T;
  34. typedef struct
  35. {
  36. /* FIFO 结构 */
  37. uint16_t usRead; /* 读指针 */
  38. uint16_t usWrite; /* 写指针 */
  39. uint16_t usCount; /* 新数据个数 */
  40. uint8_t ucFull; /* FIFO满标志 */
  41. int16_t sBuf[ADC_FIFO_SIZE];
  42. } AD7606_FIFO_T;
  43. void ad7606_init(void);
  44. void AD7606_SetOS(uint8_t _ucOS);
  45. void AD7606_SetInputRange(uint8_t _ucRange);
  46. void AD7606_Reset(void);
  47. void AD7606_StartConvst(void);
  48. void AD7606_ReadNowAdc(void);
  49. /* 下面的函数用于FIFO操作模式 */
  50. void AD7606_EnterAutoMode(uint32_t _ulFreq);
  51. void AD7606_StartRecord(uint32_t _ulFreq);
  52. void AD7606_StopRecord(void);
  53. uint8_t AD7606_FifoNewData(void);
  54. uint8_t AD7606_ReadFifo(uint16_t *_usReadAdc);
  55. uint8_t AD7606_FifoFull(void);
  56. /* 全局变量 */
  57. extern AD7606_VAR_T g_tAD7606;
  58. extern AD7606_FIFO_T g_tAdcFifo;
  59. #endif
  60. /***************************** 安富莱电子 www.armfly.com (END OF FILE) *********************************/