Library for accelerometer KXR94-2050
KXR94_2050.cpp@0:2700ada3a245, 2015-01-03 (annotated)
- Committer:
- 66keg
- Date:
- Sat Jan 03 15:06:55 2015 +0000
- Revision:
- 0:2700ada3a245
- Child:
- 2:1e4a75b43643
created
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 | 0:2700ada3a245 | 11 | void KXR94_2050::gsetZeroVal(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 | 0:2700ada3a245 | 17 | void KXR94_2050::getRawData(float &pitch, float &roll) { |
66keg | 0:2700ada3a245 | 18 | uint16_t Xacc = X_value.read_u16(); |
66keg | 0:2700ada3a245 | 19 | uint16_t Yacc = Y_value.read_u16(); |
66keg | 0:2700ada3a245 | 20 | uint16_t Zacc = Z_value.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 | 0:2700ada3a245 | 26 | roll = atan2l(yval, zval) * 180.0 / PI; |
66keg | 0:2700ada3a245 | 27 | pitch = atan2l(xval, zval) * 180.0 / PI; |
66keg | 0:2700ada3a245 | 28 | } |