|
1个通道切换读取要花100ms,2个通道要200ms多,太慢了
- #include <Arduino.h>
- #include "coda_cs1237.h"
- coda_cs1237 cs1237;
- void setup() {
- Serial.begin(115200);
- cs1237.begin(27, 26);
- //cs1237.config(SPEED_40Hz,CH_A,GAIN_1X);
- //Serial.println(cs1237.Read_Config());
- }
- int32_t data, data2;
- unsigned long
- loopTimeStart = 0, //SYSTEM PARAMETER - 用于循环循环秒表,记录循环开始时间
- loopTimeEnd = 0; //SYSTEM PARAMETER - 用于循环循环秒表,记录循环结束时间
- float loopTime = 0.0000; // SYSTEM PARAMETER -
- void loop() {
- //////////// LOOP TIME STOPWATCH ////////////
- loopTimeStart = micros(); //Record Start Time
- loopTime = (loopTimeStart - loopTimeEnd) / 1000.000; //Compute Loop Cycle Speed (mS)
- loopTimeEnd = micros(); //Record End Time
- cs1237.config(SPEED_40Hz, CH_A, GAIN_1X);
- //delay(10);
- Serial.print("CH_A\t");
- data = cs1237.read();
- Serial.print(data, HEX);
- Serial.print("\t");
- Serial.print(data);
- Serial.print("\t");
- float vo = (float)data * 3.32f / 0x800000 / 2;
- float Io = vo / (0.01 * 25);
- Serial.print(vo);
- Serial.print("\t");
- Serial.println(Io);
- cs1237.config(SPEED_40Hz, CH_B, GAIN_1X);
- delay(10);
- Serial.print("CH_B\t");
- data2 = cs1237.read();
- Serial.print(data2, HEX);
- Serial.print("\t");
- Serial.print(data2);
- Serial.print("\t");
- float vo2 = (float)data2 * 3.32f / 0x800000 / 2;
- float Io2 = vo2 / (0.01 * 25);
- Serial.print(vo2);
- Serial.print("\t");
- Serial.print(Io2);
- Serial.print("\t");
- Serial.println(loopTime);
- }
复制代码
coda_cs1237.h
- #ifndef CS1237SUPPORT_CODA_CS1237_H
- #define CS1237SUPPORT_CODA_CS1237_H
- #include <Arduino.h>
- #define SPEED_10Hz 0b00
- #define SPEED_40Hz 0b01
- #define SPEED_640Hz 0b10
- #define SPEED_1280Hz 0b11
- #define GAIN_1X 0b00
- #define GAIN_2X 0b01
- #define GAIN_64X 0b10
- #define GAIN_128X 0b11
- #define CH_A 0b00
- #define CH_B 0b01
- #define CH_TEMP 0b10
- #define CH_SC 0b11
- #define REF_OUT_ON 0b0
- #define REF_OUT_OFF 0b1
- #define PIN_IN() pinMode(DIO,INPUT);
- #define PIN_OUT() pinMode(DIO,OUTPUT);
- #define D_HIGH() digitalWrite(DIO,HIGH);
- #define D_LOW() digitalWrite(DIO,LOW);
- #define C_HIGH() digitalWrite(CLK,HIGH);
- #define C_LOW() digitalWrite(CLK,LOW);
- #define D_IN() digitalRead(DIO)
- #define delay_ms(ms) delay(ms);
- #define delay_us(us) delayMicroseconds(us);
- #define GEN_CLK() C_HIGH();delay_us(1);D_HIGH();C_LOW();delay_us(1);
- class coda_cs1237
- {
- private:
- uint8_t DIO=0;
- uint8_t CLK=1;
- public:
- void begin(uint8_t dio=0,uint8_t clk=1);
- void setpin(uint8_t dio=0,uint8_t clk=1);
- void config(uint8_t speed = SPEED_40Hz , //设置采样率
- uint8_t channel= CH_A , //采样通道
- uint8_t gain = GAIN_1X , //
- uint8_t refout =REF_OUT_ON //
- );
- unsigned char Read_Config(void);
- uint8_t config(void);
- int32_t read(void);
- };
- #endif //CS1237SUPPORT_CODA_CS1237_H
复制代码
coda_cs1237.cpp
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|