Library to communicate with a ST LIS331DLH
Diff: LIS331.cpp
- Revision:
- 1:02c1f5bb1c90
- Parent:
- 0:d835d6cac146
- Child:
- 2:d4b810a888b5
--- a/LIS331.cpp Fri Nov 12 23:40:28 2010 +0000 +++ b/LIS331.cpp Sat Nov 13 00:01:57 2010 +0000 @@ -15,6 +15,7 @@ /** * Includes */ + #include "LIS331.h" LIS331::LIS331(PinName sda, PinName scl) : i2c_(sda, scl) { @@ -49,7 +50,18 @@ } -/* Needs to be implemented + + +void LIS331::setPowerMode(char power_mode){ +// Currently sets all 3 axis to enabled. Will be set to preserve existing status in future + char tx[2]; + tx[0] = CTRL_REG_1; + tx[1] = power_mode; + + i2c_.write((LIS331_I2C_ADDRESS << 1) & 0xFE, tx, 2); + +} + char LIS331::getPowerMode(void){ char tx = CTRL_REG_1; @@ -64,49 +76,6 @@ } -*/ - - - -void LIS331::setPowerMode(char power_mode){ -// Currently sets all 3 axis to enabled. Will be set to preserve existing status in future - char tx[2]; - tx[0] = CTRL_REG_1; - tx[1] = power_mode; - - i2c_.write((LIS331_I2C_ADDRESS << 1) & 0xFE, tx, 2); - -} - - -/* -int LIS331::getInternalSampleRate(void){ - - char tx = DLPF_FS_REG; - char rx; - - i2c_.write((LIS331_I2C_ADDRESS << 1) & 0xFE, &tx, 1); - - i2c_.read((LIS331_I2C_ADDRESS << 1) | 0x01, &rx, 1); - - //DLPF_CFG == 0 -> sample rate = 8kHz. - if(rx == 0){ - return 8; - } - //DLPF_CFG = 1..7 -> sample rate = 1kHz. - else if(rx >= 1 && rx <= 7){ - return 1; - } - //DLPF_CFG = anything else -> something's wrong! - else{ - return -1; - } - -} - - -*/ - char LIS331::getInterruptConfiguration(void){ @@ -124,50 +93,9 @@ - - -/* -void LIS331::setInterruptConfiguration(char config){ - - char tx[2]; - tx[0] = INT_CFG_REG; - tx[1] = config; - - i2c_.write((LIS331_I2C_ADDRESS << 1) & 0xFE, tx, 2); - -} - -*/ - - - -/* -bool LIS331::isPllReady(void){ - - char tx = INT_STATUS; - char rx; - - i2c_.write((LIS331_I2C_ADDRESS << 1) & 0xFE, &tx, 1); - - i2c_.read((LIS331_I2C_ADDRESS << 1) | 0x01, &rx, 1); - - //ITG_RDY bit is bit 4 of INT_STATUS register. - if(rx & 0x04){ - return true; - } - else{ - return false; - } - -} - -*/ - - - char LIS331::getAccelStatus(void){ - char tx = STATSUS_REG; + char tx = STATUS_REG; char rx; i2c_.write((LIS331_I2C_ADDRESS << 1) & 0xFE, &tx, 1); @@ -175,11 +103,10 @@ i2c_.read((LIS331_I2C_ADDRESS << 1) | 0x01, &rx, 1); return rx; - } - } + int LIS331::getAccelX(void){ char tx = ACCEL_XOUT_H_REG; @@ -222,6 +149,4 @@ int16_t output = ((int) rx[1] << 8) | ((int) rx[0]); return output; -} - - +} \ No newline at end of file