[资料分享] 【TI年终产品资料分享】+ ADS1286

[复制链接]
762|2
 楼主| 冰是睡着的冰 发表于 2016-1-25 17:12 | 显示全部楼层 |阅读模式
ADS, TI, ads1, AD, AC

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 冰是睡着的冰 发表于 2016-1-25 17:14 | 显示全部楼层
ADS1286的驱动
  1. # ifndef   _ADS1286_H
  2. # define   _ADS1286_H
  3. # include "main.h"

  4. # define ADCLK_H GPIO_SetBits(GPIOB,GPIO_Pin_0)
  5. # define ADCLK_L GPIO_ResetBits(GPIOB,GPIO_Pin_0)
  6. # define ADCS_H  GPIO_SetBits(GPIOB,GPIO_Pin_1)
  7. # define ADCS_L  GPIO_ResetBits(GPIOB,GPIO_Pin_1)
  8. # define ADOUT  GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_2)
  9. //# define N 20      //确定平均采样点数

  10. void ads1286_Init(void) ;

  11. float ads1286_ctr(void) ;

  12. float ad_aver(int Num) ;

  13. void ad_delay(int N) ;

  14. void ad_show(float value) ;
  15. # endif


  16. # include "main.h"


  17. void ads1286_Init(void)
  18. {
  19. ADCS_L ;
  20. ADCS_H ;
  21. ADCLK_L ;
  22. ADCLK_H ;
  23. }

  24. float ads1286_ctr(void)
  25. {
  26. int i = 0 ;
  27. u16  AD_Value = 0 ;

  28.   ads1286_Init() ;

  29. ADCS_L ;

  30. ad_delay(100) ;
  31. ADCLK_L ;
  32. for(i=0 ; i<1 ;i++)
  33. {
  34.    ADCLK_H ;
  35.    ad_delay(10) ;
  36.    ADCLK_L ;
  37. }

  38. for(i=0 ; i<11 ;i++)
  39. {
  40.    ADCLK_H ;
  41.    ad_delay(10) ;
  42.    ADCLK_L ;
  43. }

  44. for(i=0 ; i<12 ;i++)
  45. {
  46.    ADCLK_H ;
  47.    ad_delay(10) ;
  48.    ADCLK_L ;
  49.    AD_Value |= (ADOUT<<i) ;
  50. }


  51.    ADCLK_H ;
  52.    ADCS_H ;
  53.    return (AD_Value) ;
  54.          
  55. }

  56. float ad_aver(int Num)
  57. {
  58. char i;
  59. float ad_data=0;
  60.      
  61. ads1286_ctr();   
  62. for(i=0;i<Num;i++)        //采样Num次,求平均值
  63. {
  64. ad_data += ads1286_ctr();
  65. }
  66. ad_data = ad_data/Num ;
  67. if(ad_data>=0xfff)
  68. {
  69. ad_data = 0;
  70. }
  71. ad_data = ad_data*5.0/4095.0  ;
  72. return( ad_data) ;
  73. }

  74. void ad_delay(int N)
  75. {
  76. int i = 0 ;
  77. for (i=0 ;i<N ;i++)
  78. {
  79.    ;
  80. }
  81. }

  82. void ad_show(float value)
  83. {
  84. char chFloat[8]={0} ;
  85. sprintf(chFloat ,"%7.5f" ,value) ;
  86. DispStr(0, 0, (u8 *)chFloat ) ;

  87. }
 楼主| 冰是睡着的冰 发表于 2016-12-21 15:48 | 显示全部楼层
居然不能自己给自己分配分数,结帖啦。这个驱动确实是好不容易找到的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

213

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部