Library for accelerometer KXR94-2050
KXR94_2050.cpp@2:1e4a75b43643, 2015-01-03 (annotated)
- Committer:
- 66keg
- Date:
- Sat Jan 03 15:21:49 2015 +0000
- Revision:
- 2:1e4a75b43643
- Parent:
- 0:2700ada3a245
revise
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
66keg | 0:2700ada3a245 | 1 | #include "KXR94_2050.h" |
66keg | 0:2700ada3a245 | 2 | |
66keg | 0:2700ada3a245 | 3 | KXR94_2050::KXR94_2050(PinName OutX, |
66keg | 0:2700ada3a245 | 4 | PinName OutY, |
66keg | 0:2700ada3a245 | 5 | PinName OutZ) : _OutX(OutX), _OutY(OutY), _OutZ(OutZ) { |
66keg | 0:2700ada3a245 | 6 | X_ZERO_VAL = 2097; |
66keg | 0:2700ada3a245 | 7 | Y_ZERO_VAL = 2050; |
66keg | 0:2700ada3a245 | 8 | Z_ZERO_VAL = 2052; |
66keg | 0:2700ada3a245 | 9 | } |
66keg | 0:2700ada3a245 | 10 | |
66keg | 2:1e4a75b43643 | 11 | void KXR94_2050::setZeroVal(uint16_t x_zero, uint16_t y_zero, uint16_t z_zero) { |
66keg | 0:2700ada3a245 | 12 | X_ZERO_VAL = x_zero; |
66keg | 0:2700ada3a245 | 13 | Y_ZERO_VAL = y_zero; |
66keg | 0:2700ada3a245 | 14 | Z_ZERO_VAL = z_zero; |
66keg | 0:2700ada3a245 | 15 | } |
66keg | 0:2700ada3a245 | 16 | |
66keg | 2:1e4a75b43643 | 17 | void KXR94_2050::getRawData(float *pitch, float *roll) { |
66keg | 2:1e4a75b43643 | 18 | uint16_t Xacc = _OutX.read_u16(); |
66keg | 2:1e4a75b43643 | 19 | uint16_t Yacc = _OutY.read_u16(); |
66keg | 2:1e4a75b43643 | 20 | uint16_t Zacc = _OutZ.read_u16(); |
66keg | 0:2700ada3a245 | 21 | |
66keg | 0:2700ada3a245 | 22 | int xval = Xacc - X_ZERO_VAL; |
66keg | 0:2700ada3a245 | 23 | int yval = Yacc - Y_ZERO_VAL; |
66keg | 0:2700ada3a245 | 24 | int zval = Zacc - Z_ZERO_VAL; |
66keg | 0:2700ada3a245 | 25 | |
66keg | 2:1e4a75b43643 | 26 | *roll = atan2l(yval, zval) * 180.0 / PI; |
66keg | 2:1e4a75b43643 | 27 | *pitch = atan2l(xval, zval) * 180.0 / PI; |
66keg | 0:2700ada3a245 | 28 | } |