AD770X.zip

  • phlg135531
    了解作者
  • C/C++
    开发工具
  • 3.1KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 0
    下载次数
  • 2022-04-11 14:50
    上传日期
AD采集模块,2路AD,基于arduino代码。
AD770X.zip
  • AD770X
  • Samples
  • AD7706Test.pde
    454B
  • AD770X.h
    3.4KB
  • AD770x.cpp
    2.8KB
内容介绍
/* * AD7705/AD7706 Library * Kerry D. Wong * http://www.kerrywong.com * Initial version 1.0 3/2011 * Updated 1.1 4/2012 */ #include "AD770X.h" //write communication register // 7 6 5 4 3 2 1 0 //0/DRDY(0) RS2(0) RS1(0) RS0(0) R/W(0) STBY(0) CH1(0) CH0(0) void AD770X::setNextOperation(byte reg, byte channel, byte readWrite) { byte r = 0; r = reg << 4 | readWrite << 3 | channel; digitalWrite(pinCS, LOW); spiTransfer(r); digitalWrite(pinCS, HIGH); } //Clock Register // 7 6 5 4 3 2 1 0 //ZERO(0) ZERO(0) ZERO(0) CLKDIS(0) CLKDIV(0) CLK(1) FS1(0) FS0(1) // //CLKDIS: master clock disable bit //CLKDIV: clock divider bit void AD770X::writeClockRegister(byte CLKDIS, byte CLKDIV, byte outputUpdateRate) { byte r = CLKDIS << 4 | CLKDIV << 3 | outputUpdateRate; r &= ~(1 << 2); // clear CLK digitalWrite(pinCS, LOW); spiTransfer(r); digitalWrite(pinCS, HIGH); } //Setup Register // 7 6 5 4 3 2 1 0 //MD10) MD0(0) G2(0) G1(0) G0(0) B/U(0) BUF(0) FSYNC(1) void AD770X::writeSetupRegister(byte operationMode, byte gain, byte unipolar, byte buffered, byte fsync) { byte r = operationMode << 6 | gain << 3 | unipolar << 2 | buffered << 1 | fsync; digitalWrite(pinCS, LOW); spiTransfer(r); digitalWrite(pinCS, HIGH); } unsigned int AD770X::readADResult() { digitalWrite(pinCS, LOW); byte b1 = spiTransfer(0x0); byte b2 = spiTransfer(0x0); digitalWrite(pinCS, HIGH); unsigned int r = b1 << 8 | b2; return r; } double AD770X::readADResult(byte channel, float refOffset) { while (!dataReady(channel)) { }; setNextOperation(REG_DATA, channel, 1); return readADResult() * 1.0 / 65536.0 * VRef - refOffset; } bool AD770X::dataReady(byte channel) { setNextOperation(REG_CMM, channel, 1); digitalWrite(pinCS, LOW); byte b1 = spiTransfer(0x0); digitalWrite(pinCS, HIGH); return (b1 & 0x80) == 0x0; } void AD770X::reset() { digitalWrite(pinCS, LOW); for (int i = 0; i < 100; i++) spiTransfer(0xff); digitalWrite(pinCS, HIGH); } AD770X::AD770X(double vref) { VRef = vref; pinMode(pinMOSI, OUTPUT); pinMode(pinMISO, INPUT); pinMode(pinSPIClock, OUTPUT); pinMode(pinCS, OUTPUT); digitalWrite(pinCS, HIGH); SPCR = _BV(SPE) | _BV(MSTR) | _BV(CPOL) | _BV(CPHA) | _BV(SPI2X) | _BV(SPR1) | _BV(SPR0); } void AD770X::init(byte channel, byte clkDivider, byte polarity, byte gain, byte updRate) { setNextOperation(REG_CLOCK, channel, 0); writeClockRegister(0, clkDivider, updRate); setNextOperation(REG_SETUP, channel, 0); writeSetupRegister(MODE_SELF_CAL, gain, polarity, 0, 0); while (!dataReady(channel)) { }; } void AD770X::init(byte channel) { init(channel, CLK_DIV_1, BIPOLAR, GAIN_1, UPDATE_RATE_25); }
评论
    相关推荐
    • ad7705.zip
      atmage16l驱动12864液晶显示屏,通过模拟spi通信,附带有数据显示,同时驱动ad7705采集模拟电压,通过硬件spi通信
    • AD7705C.rar
      基于SPI的ad7705模数转换器读写操作的C语言代码
    • AD7705.zip
      基于STC89C52的AD7705驱动,可用于16位AD数据采集
    • AD7705.rar
      AD7705
    • AD7705DRIVER.rar
      AD7705的资料和驱动程序,希望大家用得着,资料很详实
    • AD7705.rar
      AD7705的使用,写命令和读数据的应用程序
    • stm32 ad7705
      stm32 ad7705 spi uv4工程 已经调试好的 稍加修改就可在不同stm32芯片上运行
    • AD7705单片机程序
      AD7705的单片机程序;AD7705的单片机程序;AD7705的单片机程序;
    • AD7705.zip
      AD7705放大器芯片控制LED灯的循环亮灯
    • AD7705.rar
      单片机链接两路AD7705,SPI线为公用接口靠片选来使用 其他使用的 信号为单独信号 数据输出线--------------P0.1 时钟线-----------------P0.2 数据线输入--------------P0.3 芯片A 使用的复位信号-------...