单片机交流
直播中

李晶

7年用户 913经验值
私信 关注
[问答]

Atmega128L控制ADS7816进行AD采集

Atmega128L是如何控制ADS7816的?
ADS7816是怎样进行AD采集的?

回帖(1)

贾虎世

2021-9-24 18:16:52
  //---------------------------------------
  // 功能: Atmega128L控制ADS7816进行AD采集
  // 编写:
  // 2006.11
  unsigned int ads7816(void)
  {
  unsigned int AD_Temp;
  unsigned char i,count;
  unsigned char AD_Low8=0,AD_High4=0;
  AD_Temp = 0;
  AD_CS_0; // 片选
  bFlagADTimeOver = 1; // 加入超时处理
  AD_TimeOverCount = 0;
  while(AD_DATA==1)
  {
  AD_CLK_1;
  Delay(10);
  AD_CLK_0;
  Delay(10);
  if(AD_TimeOverCount == 2)
  break; // 如果在100ms内未能采集成功,则退出
  }
  bFlagADTimeOver = 0;
  AD_TimeOverCount = 0;
  for(i=0;i《4;i++)
  {
  AD_CLK_1;
  Delay(10);
  AD_CLK_0;
  Delay(10);
  AD_High4 = (AD_High4《《1);
  if(AD_DATA == 1)
  AD_High4 |= 0x01;
  }
  for(i=0;i《8;i++)
  {
  AD_CLK_1;
  Delay(10);
  AD_CLK_0;
  Delay(10);
  AD_Low8=(AD_Low8《《1);
  if(AD_DATA == 1)
  AD_Low8 |= 0x01;
  }
  AD_CS_1;
  AD_High4 &= 0x0F;
  AD_Temp = AD_High4*256 + AD_Low8;
  return(AD_Temp);
  }
举报

更多回帖

发帖
×
20
完善资料,
赚取积分