add FIFO functions.

Dependents:   test_ADXL375_i2c

Files at this revision

API Documentation at this revision

Comitter:
ohtsuka
Date:
Thu Jun 24 03:00:40 2021 +0000
Parent:
1:91bcb4ada70c
Commit message:
add FIFO functions.

Changed in this revision

ADXL375_i2c.cpp Show annotated file Show diff for this revision Revisions of this file
ADXL375_i2c.h Show annotated file Show diff for this revision Revisions of this file
--- a/ADXL375_i2c.cpp	Thu Jun 24 01:35:15 2021 +0000
+++ b/ADXL375_i2c.cpp	Thu Jun 24 03:00:40 2021 +0000
@@ -99,9 +99,22 @@
     singleByteWrite(ADXL375_BW_RATE_REG, buff);
 }
 
-void ADXL375_i2c :: setFIFO_MODE(int fifo_status){
+void ADXL375_i2c :: setFifoMode(bool is_fifo_on){
     char buff = singleByteRead(ADXL375_FIFO_CTL);
-    buff &= 0x10;
-    buff |= rate;
-    singleByteWrite(ADXL375_BW_RATE_REG, buff);
+    buff &= 0x3F;
+    if(is_fifo_on == true) {
+        buff |= 0x40;
+    }    
+    singleByteWrite(ADXL375_FIFO_CTL, buff);
+    
+    printf("FIFO_CTL reg. = %2X\n", singleByteRead(ADXL375_FIFO_CTL));
+}
+
+int ADXL375_i2c :: getFifoEntries(void){
+    char buff = singleByteRead(ADXL375_FIFO_STATUS);
+//    printf("ADXL375_FIFO_STATUS reg. = %02X\n", buff);
+    buff &= 0x3F;
+//    printf("ADXL375_FIFO_STATUS reg(Entries) = %d\n", buff);
+    
+    return (int)buff;
 }
\ No newline at end of file
--- a/ADXL375_i2c.h	Thu Jun 24 01:35:15 2021 +0000
+++ b/ADXL375_i2c.h	Thu Jun 24 03:00:40 2021 +0000
@@ -83,6 +83,8 @@
     
     void setDataRate(char rate);
     
+    void setFifoMode(bool is_fifo_on);
+    int getFifoEntries(void);
 private:
     
     I2C *i2c;
@@ -94,8 +96,7 @@
     
     char singleByteRead(char address);
     void singleByteWrite(char address, char data);
-    void multiByteRead(char startAddress, char* ptr_output, int size);
-    
+    void multiByteRead(char startAddress, char* ptr_output, int size);    
 };
 
 #endif
\ No newline at end of file