This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] ADS1293:ADS1293 ADS1293的通道1数据的12导联实验问题

Guru**** 2386610 points
Other Parts Discussed in Thread: ADS1293
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1160568/ads1293-ads1293-12-lead-experiment-problem-with-channel-1-data-of-2nd-and-3rd-ads1293

器件型号:ADS1293

尊敬的朋友:

我正在尝试实现 ADS1293数据表中提到的12导联 ECG 读数电路。 (请参阅数据表第67页)。

https://www.ti.com/lit/ds/symlink/ads1293.pdf?ts=1665472582670&ref_url=https%253A%252F%252Fwww.ti.com.cn%252Fproduct%252Fcn%252FADS1293

我能够读取引线1和引线2信号以及电路第二和第三 ADS 的通道2和通道3提供的信号。 但是、我无法从第2个和第3个 ADS 的第1个通道正确读取信号。 在12个导联中、我能够正确读取10个信号、并且我仅在其余2个信号中发现噪声。

实现的电路与数据表中提供的电路完全相似。 有人能帮我了解哪里出错了吗? 提前感谢您的帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    让我理解并重申您的问题:"无法从第2个和第3个 ADS 的第1个通道正确读取信号。"

    您是否使用 ECG 模拟器?

    V1-WCT  和 V4-WCT 导联的剂量?  ECG 模拟器的 V 节点是否正常工作、尤其是那些您认为不正常的节点?  

    如果是、您是否已尝试将 V1和 V2电极/贴片放置到不同的节点 Vx?

    您是否尝试过任何不同的增益设置?

    当您说不正确时、您能否提供任何屏幕截图或图表来显示这意味着什么?

    我想问您如何推断/调试这一观察结果、即第二个和第三个 ADS 的第一个通道不正确?

    您是否在 第二个和第三个 ADS 的第一个通道上尝试过内部测试信号? 并了解它是如何产生的?

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的杨:

    感谢你的答复。 对我的问题不明确表示歉意。

    是的、导联 V1-WCT 和 V4-WCT 导联有问题、我们正在使用 WhaleTec MECG 仿真器。 我们确实尝试将电极放置在不同的节点上、我们得到的结果是相同的。 我将附上上述报告的结果,并与你分享,以进一步澄清。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的杨:

    我已经尝试了一些仿真和测试、我要在这里连接相同的输出。

    我在仿真器上选择了一个 ECG 波形、并连接了我获得的与信号相关的输出。 仅当我抑制第2和第3 ADS IC 的通道1的输出时、我才能够正确地绘制信号。

    图1。 (输出时所有信号绘制在一起)

    图2除 V1和 V2外的所有导联的输出

    图3在 ECG 仿真器上 v1与 v2交换、v4与 v5交换时的输出

     

    图例:

    蓝色-导联1;红色-导联2;绿色- V2;黄色- V3;粉色- V5;灰色- V6

    来自 ECG 模拟器的原始信号: 来自起始 V1、V2、V3、V4、V5和 V6的导联。

    观察结果:即使交换了通道1和通道2的柔性寄存器值、通道2也能够显示正确的信号。 但是、在该测试中、在通道2信号上观察到一些额外的噪声。 在仿真器上进行物理交换时、通道2显示一个有效信号、该信号被馈送至通道1。

    此外、还记录了每个 ADS 的错误寄存器、相应的值如下所示:

    广告1:

    广告2:

    广告3:

    导联脱落检测错误 (0x18)

    0x00

    0x00

    0x00

    错误状态                  (0x19)

    0x00

    0x10

    0x10

    错误范围1                (0x1A)

    0x34

    0x40

    0x40

    错误范围2                (0x1B)

    0x34

    0x14

    0x14

    错误范围3                (0x1C)

    0x00

    0x00

    0x00

    错误同步                     (0x1D)

    0x00

    0x00

    0x00

    错误其他                     (0x1E)

    0x03

    0x02

    0x02

    请告诉我您可能需要的任何其他信息。 提前感谢您的帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我看不到输出或屏幕截图。

    当您说不正确时、您能否提供任何屏幕截图或图表来显示这意味着什么?

    您是否尝试过任何不同的增益设置?

    我想问您如何推断/调试这一观察结果、即第二个和第三个 ADS 的第一个通道不正确?

    为了确认、ECG 仿真器可以正确输出 V1和 V4、对吧?

    当您说  "是的、导联 V1-WCT 和 V4-WCT 导联有问题、我们正在使用 WhaleTec MECG 仿真器时、您会进一步澄清吗? 我们确实尝试将电极放在不同的节点上、我们获得了相同的结果。"

    如果您将 V1和 V4从 ECG 模拟器连接到其他输入引脚、即已知良好的通道、该怎么办? 结果和结果如何?  

    您知道吗?一些 Vx 引线信号可能非常小? 如果有此选项、您是否尝试增大 ECG 模拟器的振幅?

    您是否在 第二个和第三个 ADS 的第一个通道上尝试过内部测试信号? 并了解它是如何产生的?

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的杨:

     抱歉。 我不能提前添加图解,我已添加图解供您查阅。 如果您需要其他信息、请告诉我。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的帮助。 建议逐一解决/解决问题/问题。

     让我们从这个 "无法从第2个和第3个 ADS 的第1个通道正确读取信号"开始。

    您是否可以尝试使用已知良好的 ECG 模拟器并仅向第2个和第3个 ADS 的第1个通道注入已知良好的信号、一次注入一个信号、然后查看结果如何?

    您是否还可以尝试将第2个和第3个 ADS 的第1个通道配置为内部测试信号、一次读取/获取一个、并查看结果如何?

    还有一个问题、"抑制 第二个和第三个 ADS 的第一个通道的输出"是什么意思?

     

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回复。 对我的答复拖延表示歉意。 让我按顺序回复。

    您是否可以尝试使用已知良好的 ECG 模拟器并仅向第2个和第3个 ADS 的第1个通道注入已知良好的信号、一次注入一个信号、然后查看结果如何?

    我们是 WhaleTeq 的 MECG 2000 ECG 模拟器、我们仅注入正确的已知信号。 但是、根据您的建议、我们还没有尝试仅在第2个和第3个 ADS 的第1个通道中注入信号。 我们将在收到这些图后立即与您分享。 为了澄清这一点、我仍然需要将肢体导联信号应用到 IST ADS、以获得威尔逊的中心端子部分、以便测量胸导联。 我将仅从电路板上移除 V2、V3和 V5、V6信号。

    您是否还可以尝试将第2个和第3个 ADS 的第1个通道配置为内部测试信号、一次读取/获取一个、并查看结果如何?

    我们将尝试进行此操作并向您发送图解。 我们以前曾尝试过使用测试信号、但我们无法理解我们是否获得了正确的图、因此我们已经停止使用了一段时间。 如果可能、您可以向我们分享我们尝试获取测试信号时必须使用的寄存器配置吗? 谢谢你。

    还有一个问题、"抑制 第二个和第三个 ADS 的第一个通道的输出"是什么意思?

    通过"抑制输出"、我的意思是从代码注释掉这些值、以便将它们从图解中排除。 我在获得输出时编写了代码以绘制所有输出、并观察到、当绘图仪自行调整以在视图中分配信号时、很难看到其他信号的响应。 只有在绘图中未包含第2个和第3个 ADS 的通道1输出时、才能看到正确的输出。

    请告诉我您是否需要更多信息。 我们将快速返回图。

    谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的回复。

    更多评论、请关闭/禁用任何导联脱落和起搏信号检测。

    另外、请尝试使用内部测试信号。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Yang、

    我想通知您、在尝试禁用导联脱落和起搏检测后、我发现许多寄存器值在设置过程中未分配、在设置过程中分配了垃圾值。 因此、在 IC 2和 IC3中、起搏信号检测寄存器(0x04)没有预期的0x00。 此外、在 IC2和 IC3的通道1输出中观察到的高输出。 然后、可以看到 AFE_SHUTDOWN_reg (0x14)正在关闭连接到 IC2和 IC3通道1的仪表放大器。 这就是 IC2和 IC3通道1根本不受影响的原因、即使存在信号是否被应用也是如此。 当在通道1上启用仪表放大器时、我们能够在 IC2和 IC3的通道1上看到数据。 我们已在相应的设置例程中应用了相关的更改。 我正在附加屏幕截图、其中所有八个信号(I、II、V1至 V6)都已正确记录在串行监视器中。

    我们感谢您至今提供的支持。 我们还想提醒您、问题的根本原因是 IC 的寄存器不默认为其各自的默认值。 也许其他 ADS1293 IC 也会出现同样的问题。

    谢谢、祝您愉快。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好  

    非常感谢您的告知。

    我学到了一个好的教训 -"始终重置并仔细检查初始化过程。"

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您使用的是哪种控制器和 ADS1293开发板?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Kushal、

    您是问我还是问客户?

    TI 拥有 ADS1293开发板(EVM)-

    www.ti.com/.../ADS1293EVM

    它使用 MSP430F5529IPN MCU。

    我不能也不允许回答其他客户的问题。

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们没有使用任何开发板。 我们已经使用了 ADS1293 IC 本身。 ADS1293数据表中给出了我们制造的电路。 由于 ADS1293使用 SPI 进行通信、因此您可以使用任何控制器。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     

    实际上、我们将 esp32与 Protocentral 的 ADS 1293开发板一起使用。  使用相同的开发板、我们能够通过 Arduino 获得 ECG 波形。 但是、当我们使用 ESP32时、我们无法获得正确的输出。 我已经测试了 SPI 通信。 它能够将数据读取和写入寄存器。

    您能帮您解决这个问题吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    此外、从上述帖子中我可以看到 Arduino IDE。您正在使用哪款微控制器?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您能否检查 OSC 控制寄存器(0x12)和 AFE 控制寄存器(0x13、0x14和0x15)的值? 很明显、有时、寄存器在未分配时不会返回默认值。 列出未在程序中分配的所有寄存器、并通过读取它们来仔细检查它们的值。

    此外、您的输出是如何的? 您是否具有恒定的零输出? 有什么非常嘈杂的东西或只是不准确的信号?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,

    我已经检查了值、如下所示:

    0x12 =4

    0x13=0

    0x14=36

    0x15=0

    此外、我还获得了以下输出。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    此外、这里是我要使用的代码。

    //#include <SPI.h>
    
    /*
    
      Simplest 3-Lead 24-bit ECG with an ads1293 and esp32
    
      SPI conection:
    
      ads1293     Esp32 Pico
      DRDYB       D4
      SDO         D12 (slave out - master in )
      SDI         D13 (slave in  - master out)
      SCLK        D14
      CSB         D15
      ALARMB      D2
    
    */
    
    // #include "Plotter.h"
    // Plotter p;
    
    #include <SPI.h>
    
    SPIClass * vspi = NULL;
    //SPIClass vspi(VSPI);
    static const int spiClk = 1000000; // 1 MHz
    
    const int pin_DRDYB = 4;  // data ready
    const int pin_ALARMB = 2; // alarm
    const int pin_MISO = 19;  // MISO
    const int pin_MOSI = 23;  // MOSI
    const int pin_SCLK = 18;  // SCLK
    const int pin_SS = 5;    // CSB
    
    int32_t c1;
    int32_t c2;
    int32_t c3;
    
    double cd1;
    double cd2;
    double cd3;
    
    int32_t getValFromChannel(int channel)
    {
      byte x1;
      byte x2;
      byte x3;
    
      switch (channel)
      {
      case 1:
        x1 = 0x37;
        x2 = 0x38;
        x3 = 0x39;
        break;
      case 2:
        x1 = 0x3A;
        x2 = 0x3B;
        x3 = 0x3C;
        break;
      case 3:
        x1 = 0x3D;
        x2 = 0x3E;
        x3 = 0x3F;
        break;
      }
      int32_t val;
    
      // 3 8-bit registers combination on a 24 bit number
      val = readRegister(x1);
      //Serial.println(readRegister(x1));
      val = (val << 8) | readRegister(x2);
      //Serial.println(readRegister(x2));
      val = (val << 8) | readRegister(x3);
      //Serial.println(readRegister(x3));
      
     // delay(1000);
      //val = val << 8;
      //val = (int32_t) (val);
    
      return val;
    }
    
    void setup_ECG_2_channel()
    {
      // datasheet ads1293
      //Follow the next steps to configure the device for this example, starting from default registers values.
      //1. Set address 0x01 = 0x11: Connect channel 1’s INP to IN2 and INN to IN1.
      writeRegister(0x01, 0x11);
      //2. Set address 0x02 = 0x19: Connect channel 2’s INP to IN3 and INN to IN1.
      writeRegister(0x02, 0x19);
      //3. Set address 0x0A = 0x07: Enable the common-mode detector on input pins IN1, IN2 and IN3.
      writeRegister(0x05, 0x00);
    
      
      writeRegister(0x0A, 0x07);
      //4. Set address 0x0C = 0x04: Connect the output of the RLD amplifier internally to pin IN4.
      writeRegister(0x0C, 0x04);
      //5. Set address 0x12 = 0x04: Use external crystal and feed the internal oscillator's output to the digital.
      writeRegister(0x12, 0x04);
      //6. Set address 0x14 = 0x24: Shuts down unused channel 3’s signal path.
      writeRegister(0x14, 0x24);
      //7. Set address 0x21 = 0x02: Configures the R2 decimation rate as 5 for all channels.
      writeRegister(0x21, 0x02);
      //8. Set address 0x22 = 0x02: Configures the R3 decimation rate as 6 for channel 1.
      writeRegister(0x22, 0x02);
      //9. Set address 0x23 = 0x02: Configures the R3 decimation rate as 6 for channel 2.
      writeRegister(0x23, 0x02);
      //10. Set address 0x27 = 0x08: Configures the DRDYB source to channel 1 ECG (or fastest channel).
      writeRegister(0x27, 0x08);
      //11. Set address 0x2F = 0x30: Enables channel 1 ECG and channel 2 ECG for loop read-back mode.
      writeRegister(0x2F, 0x30);
      //12. Set address 0x00 = 0x01: Starts data conversion.
      writeRegister(0x00, 0x01);
    }
    
    void setup_ECG_3_channel()
    {
      // datasheet ads1293
      //Follow the next steps to configure the device for this example, starting from default registers values.
      //1. Set address 0x01 = 0x11: Connect channel 1’s INP to IN2 and INN to IN1.
      writeRegister(0x01, 0x11);
      //2. Set address 0x02 = 0x19: Connect channel 2’s INP to IN3 and INN to IN1.
      writeRegister(0x02, 0x19);
    
      writeRegister(0x03, 0x2E); //diff
    
      //3. Set address 0x0A = 0x07: Enable the common-mode detector on input pins IN1, IN2 and IN3.
      writeRegister(0x0A, 0x07);
      //4. Set address 0x0C = 0x04: Connect the output of the RLD amplifier internally to pin IN4.
      writeRegister(0x0C, 0x04);
    
      writeRegister(0x0D, 0x01); //diff
      writeRegister(0x0E, 0x02); //diff
      writeRegister(0x0F, 0x03); //diff
    
      writeRegister(0x10, 0x01); //diff
    
      //5. Set address 0x12 = 0x04: Use external crystal and feed the internal oscillator's output to the digital.
      writeRegister(0x12, 0x04);
      // //6. Set address 0x14 = 0x24: Shuts down unused channel 3’s signal path.
      // writeRegister(0x14, 0x24);
      //7. Set address 0x21 = 0x02: Configures the R2 decimation rate as 5 for all channels.
      writeRegister(0x21, 0x02);
      //8. Set address 0x22 = 0x02: Configures the R3 decimation rate as 6 for channel 1.
      writeRegister(0x22, 0x02);
      //9. Set address 0x23 = 0x02: Configures the R3 decimation rate as 6 for channel 2.
      writeRegister(0x23, 0x02);
    
      writeRegister(0x24, 0x02); //diff
    
      //10. Set address 0x27 = 0x08: Configures the DRDYB source to channel 1 ECG (or fastest channel).
      writeRegister(0x27, 0x08);
      //11. Set address 0x2F = 0x30: Enables channel 1 ECG and channel 2 ECG for loop read-back mode.
      writeRegister(0x2F, 0x70); //diff
      //12. Set address 0x00 = 0x01: Starts data conversion.
      writeRegister(0x00, 0x01);
    }
    
    //===========SPECIALIZED SPI OPTION 1
    byte readRegister(byte reg)
    {
      byte data;
      reg |= 1 << 7;
      vspi->beginTransaction(SPISettings(spiClk, MSBFIRST, SPI_MODE0));
      digitalWrite(vspi->pinSS(), LOW);
      vspi->transfer(reg);
      data = vspi->transfer(0);
      digitalWrite(vspi->pinSS(), HIGH);
      vspi->endTransaction();
      return data;
    }
    
    void writeRegister(byte reg, byte data)
    {
      reg &= ~(1 << 7);
      vspi->beginTransaction(SPISettings(spiClk, MSBFIRST, SPI_MODE0));
      digitalWrite(vspi->pinSS(), LOW);
      vspi->transfer(reg);
      vspi->transfer(data);
      digitalWrite(vspi->pinSS(), HIGH);
      vspi->endTransaction();
    }
    //===========SPECIALIZED SPI
    
    void setup()
    {
    
      vspi = new SPIClass(VSPI);
      vspi->begin();
      //vspi->begin(pin_SCLK, pin_MISO, pin_MOSI, pin_SS);
      pinMode(pin_DRDYB, INPUT);
      pinMode(pin_ALARMB, INPUT);
      pinMode(pin_SS, OUTPUT);
      pinMode(vspi->pinSS(), OUTPUT);
    
      Serial.begin(115200);
      
      //SPI.begin();
     // Wire.begin(25,22);
      //vspi->setClockDivider (SPI_CLOCK_DIV16);
      //vspi->setBitOrder (MSBFIRST);
      //vspi->setDataMode (SPI_MODE0);
      //option 1: use vspi specific spi channel
      //vspi.begin(pin_SCLK, pin_MISO, pin_MOSI, pin_SS);
    
      //option 2: use default spi class methods
      //SPI.begin(pin_SCLK, pin_MISO, pin_MOSI, pin_SS);
    
      setup_ECG_2_channel();
      int i = 0x00;
      while(i <= 0x3F)
      {
        Serial.println(i);
        Serial.println(readRegister(i));
        i++;
        
        
        }
    //  Serial.println(readRegister(0x01));
    //  Serial.println(readRegister(0x02));
    //  Serial.println(readRegister(0x03));
    //  Serial.println(readRegister(0x04));
    //  Serial.println(readRegister(0x05));
    //  Serial.println(readRegister(0x06));
    //  Serial.println(readRegister(0x07));
    //  Serial.println(readRegister(0x08));
    //  Serial.println(readRegister(0x09));
    //  Serial.println(readRegister(0x0A));
    //  Serial.println(readRegister(0x0B));
    //  Serial.println(readRegister(0x0C));
    //  Serial.println(readRegister(0x0D));
    //  Serial.println(readRegister(0x0E));
    //  Serial.println(readRegister(0x0F));
    //  Serial.println(readRegister(0x10));
    //  Serial.println(readRegister(0x11));
    //  Serial.println(readRegister(0x12));
    //  Serial.println(readRegister(0x13));
    //  Serial.println(readRegister(0x14));
    //  Serial.println(readRegister(0x15));
    //  Serial.println(readRegister(0x16));
    //  Serial.println(readRegister(0x17));
    //  Serial.println(readRegister(0x18));
    //  Serial.println(readRegister(0x19));
    //  Serial.println(readRegister(0x1A));
    //  Serial.println(readRegister(0x1B));
    //  Serial.println(readRegister(0x1C));
    //  Serial.println(readRegister(0x1D));
    //  Serial.println(readRegister(0x1E));
    //  Serial.println(readRegister(0x1F));
    //  Serial.println(readRegister(0x20));
    //  Serial.println(readRegister(0x21));
    //  Serial.println(readRegister(0x22));
    //  Serial.println(readRegister(0x23));
    //  Serial.println(readRegister(0x24));
    //  Serial.println(readRegister(0x25));
    //  Serial.println(readRegister(0x26));
    //  Serial.println(readRegister(0x27));
    //  Serial.println(readRegister(0x28));
    //  Serial.println(readRegister(0x29));
    //  Serial.println(readRegister(0x2A));
    //  Serial.println(readRegister(0x2B));
    //  Serial.println(readRegister(0x2C));
    //  Serial.println(readRegister(0x2D));
    //  Serial.println(readRegister(0x2E));
    //  Serial.println(readRegister(0x2F));
    //  Serial.println(readRegister(0x30));
    //  Serial.println(readRegister(0x31));
    //  Serial.println(readRegister(0x32));
    //  Serial.println(readRegister(0x33));
    //  Serial.println(readRegister(0x34));
    //  Serial.println(readRegister(0x35));
    //  Serial.println(readRegister(0x36));
    //  Serial.println(readRegister(0x37));
    //  Serial.println(readRegister(0x38));
    //  Serial.println(readRegister(0x39));
    //  Serial.println(readRegister(0x3A));
    //  Serial.println(readRegister(0x3B));
    //  Serial.println(readRegister(0x3C));
    //  Serial.println(readRegister(0x3D));
    //  Serial.println(readRegister(0x3E));
    //  Serial.println(readRegister(0x3F));
    //  Serial.println(readRegister(0x40));
    //  Serial.println(readRegister(0x50));
      delay(1000000);
      //setup_ECG_2_channel();
    
      // p.Begin();
      // p.AddTimeGraph("3 channel graph", 1000, "c1 label", cd1, "c2 label", cd2, "c3 label", cd3);
    }
    
    void loop()
    {
      // if (digitalRead(pin_ALARMB) == false)
      // {
      //   Serial.println("alarm raised");
      // }
      if (digitalRead(pin_DRDYB) == false)
       {
    
      // sampled data is located at 3 8-bit
      //--CHANNEL 1
      c1 = getValFromChannel(1);
      // cd1 = (double)c1;
      Serial.print(c1);
    
      Serial.print(",");
      //--CHANNEL 2
      c2 = getValFromChannel(2);
      // cd2 = (double)c2;
      Serial.print(c2);
    
      Serial.print(",");
      //--CHANNEL 3
      c3 = getValFromChannel(3);
      // cd3 = (double)c3;
      Serial.println(c3);
    
      // p.Plot();
       }
      delay(100); //20ms delay
    }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢大家的讨论。

    我将保持该线程打开。

    谢谢