#include "bma400.h" #include #include float x = 0, y = 0, z = 0; int16_t temp = 0; #define I2C_SDA 33 #define I2C_SCL 32 const byte gen1intpin = 25; // pin connected to MAX30102 INT void setup(void) { Wire.begin(I2C_SDA, I2C_SCL); pinMode(gen1intpin, INPUT_PULLUP); //connected to GEN1 interrupt bma400.reset(); Serial.begin(115200); while (!Serial); Serial.println("BMA400 Raw Data"); while (1) { if (bma400.isConnection()) { bma400.initialize(NORMAL, RANGE_4G, ODR_50); Serial.println("BMA400 is connected"); break; } else { Serial.println("BMA400 is not connected"); } delay(2000); } int enable = 1; uint8_t thresh = 0x05; uint8_t samples = 3; uint8_t threshold_wakeup = 8; uint8_t wkup_x = 0; uint8_t wkup_y = 0; uint8_t wkup_z = 0; uint8_t intduration = 10; uint8_t state = 0x02; bma400.wakeupInterrupt(enable, gen1_int_trigger, XYZenable, manual_wakeup, samples, threshold_wakeup, wkup_x, wkup_y, wkup_z); bma400.gen1Setup(enable, gen1_int_trigger, filt2, gen1manual, mg24, AND, inactivity, thresh, intduration, nolatch, state); attachInterrupt(digitalPinToInterrupt(gen1intpin), interrupt, RISING); Serial.println("Attached"); } void loop(void) { uint8_t powerLevel, interrupt_status; powerLevel = bma400.read8(BMA400_STATUS); // Serial.println(powerLevel); // delay(1000); interrupt_status = bma400.read8(BMA400_INT_STAT0); Serial.println(interrupt_status); delay(2000); // bma400.getAcceleration(&x, &y, &z); // Serial.print("\t"); // Serial.print(x); // Serial.print("\t"); // Serial.print(y); // Serial.print("\t"); // Serial.print(z); // Serial.println(""); } void interrupt() { Serial.println("Interrupt Check"); }