0,0 → 1,99 |
#include <Wire.h> |
#include <bma180.h> |
#define DEBUGOFF |
|
BMA180 bma180 = BMA180(BMA180_ADDRESS_SDO_LOW); |
|
|
volatile byte newData=0; |
volatile unsigned int countISR=0; |
unsigned int served=0; |
|
void BMAISR(void) |
{ |
countISR++; |
//bma180.readAccel(); |
newData=1; |
} |
|
void setup() |
{ |
Wire.begin(); |
Serial.begin(115200); |
bma180.SoftReset(); |
bma180.enableWrite(); |
int sversion; |
int id; |
bma180.getIDs(&id,&sversion); |
Serial.print("Id = "); |
Serial.print(id,DEC); |
Serial.print(" v."); |
Serial.println(sversion,HEX); |
bma180.SetFilter(bma180.F10HZ); |
bma180.setGSensitivty(bma180.G15); |
attachInterrupt(0, BMAISR, RISING); |
bma180.SetSMPSkip(); |
bma180.SetISRMode(); |
bma180.disableWrite(); |
delay(2000); |
} |
|
void loop() |
{ |
if (newData) |
{ |
newData=0; |
bma180.readAccel(); |
Serial.print("["); |
Serial.print(bma180.x,DEC); |
Serial.print(" "); |
Serial.print(bma180.y,DEC); |
Serial.print(" "); |
Serial.print(bma180.z,DEC); |
Serial.println("]"); |
} |
#ifdef DEBUGON |
if (millis() > tAlive) |
{ |
bma180.readAccel(); |
Serial.print("ISR's="); |
Serial.print(countISR); |
Serial.print(" served="); |
Serial.println(served); |
Serial.print("t="); |
Serial.print(bma180.temp); |
Serial.print("["); |
Serial.print(bma180.x,DEC); |
Serial.print(" "); |
Serial.print(bma180.y,DEC); |
Serial.print(" "); |
Serial.print(bma180.z,DEC); |
Serial.println("]"); |
|
tAlive=millis()+5000; |
Serial.print("filter reg="); |
Serial.println(bma180.getRegValue(0x20),BIN); |
Serial.print("status_reg1="); |
Serial.println(bma180.getRegValue(0x09),BIN); |
Serial.print("status_reg2="); |
Serial.println(bma180.getRegValue(0x0A),BIN); |
Serial.print("status_reg3="); |
Serial.println(bma180.getRegValue(0x0B),BIN); |
Serial.print("status_reg4="); |
Serial.println(bma180.getRegValue(0x0C),BIN); |
Serial.print("ctrl_reg0="); |
Serial.println(bma180.getRegValue(0x0d),BIN); |
Serial.print("ctrl_reg1="); |
Serial.println(bma180.getRegValue(0x0e),BIN); |
Serial.print("ctrl_reg2="); |
Serial.println(bma180.getRegValue(0x0f),BIN); |
Serial.print("ctrl_reg3="); |
Serial.println(bma180.getRegValue(0x21),BIN); |
Serial.print("ctrl_reg4="); |
Serial.println(bma180.getRegValue(0x22),BIN); |
} |
#endif |
} |
|
|
|