Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of KX022 by
KXTJ3.h
00001 /* Copyright (c) 2015 ARM Ltd., MIT License 00002 * 00003 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software 00004 * and associated documentation files (the "Software"), to deal in the Software without 00005 * restriction, including without limitation the rights to use, copy, modify, merge, publish, 00006 * distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the 00007 * Software is furnished to do so, subject to the following conditions: 00008 * 00009 * The above copyright notice and this permission notice shall be included in all copies or 00010 * substantial portions of the Software. 00011 * 00012 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING 00013 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 00014 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 00015 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 00016 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 00017 * 00018 * 00019 * KXTJ3 Accelerometer library 00020 * 00021 * @author Toyomasa Watarai 00022 * @version 1.0 00023 * @date 30-December-2015 00024 * 00025 * Library for "KXTJ3 Accelerometer library" from Kionix a Rohm group 00026 * http://www.kionix.com/product/KXTJ3-1020 00027 * 00028 */ 00029 00030 #ifndef KXTJ3_H 00031 #define KXTJ3_H 00032 00033 #include "mbed.h" 00034 00035 #define KXTJ3_DEFAULT_SLAVE_ADDRESS (0x0f << 1) 00036 #define KXTJ3_WAI_VAL (0x35) 00037 00038 #define KXTJ3_XOUT_L (0x06) 00039 #define KXTJ3_XOUT_H (0x07) 00040 #define KXTJ3_YOUT_L (0x08) 00041 #define KXTJ3_YOUT_H (0x09) 00042 #define KXTJ3_ZOUT_L (0x0A) 00043 #define KXTJ3_ZOUT_H (0x0B) 00044 #define KXTJ3_WHO_AM_I (0x0F) 00045 #define KXTJ3_CNTL1 (0x1B) 00046 #define KXTJ3_CNTL3 (0x1A) 00047 #define KXTJ3_ODCNTL (0x21) 00048 #define KXTJ3_TILT_TIMER (0x22) 00049 00050 #define _DEBUG 00051 #ifdef _DEBUG 00052 extern Serial pc; 00053 #define DEBUG_PRINT(...) pc.printf(__VA_ARGS__) 00054 #else 00055 #define DEBUG_PRINT(...) 00056 #endif 00057 00058 /** 00059 * KXTJ3 accelerometer example 00060 * 00061 * @code 00062 * #include "mbed.h" 00063 * #include "KXTJ3.h" 00064 * 00065 * int main(void) { 00066 * 00067 * KXTJ3 acc(I2C_SDA, I2C_SCL); 00068 * PwmOut rled(LED_RED); 00069 * PwmOut gled(LED_GREEN); 00070 * PwmOut bled(LED_BLUE); 00071 * 00072 * while (true) { 00073 * rled = 1.0 - abs(acc.getAccX()); 00074 * gled = 1.0 - abs(acc.getAccY()); 00075 * bled = 1.0 - abs(acc.getAccZ()); 00076 * wait(0.1); 00077 * } 00078 * } 00079 * @endcode 00080 */ 00081 class KXTJ3 00082 { 00083 public: 00084 /** 00085 * KXTJ3 constructor 00086 * 00087 * @param sda SDA pin 00088 * @param sdl SCL pin 00089 * @param addr slave address of the I2C peripheral (default: 0x3C) 00090 */ 00091 // KXTJ3(PinName sda, PinName scl, int addr = KXTJ3_DEFAULT_SLAVE_ADDRESS); 00092 00093 /** 00094 * Create a KXTJ3 instance which is connected to specified I2C pins 00095 * with specified address 00096 * 00097 * @param i2c_obj I2C object (instance) 00098 * @param addr slave address of the I2C-bus peripheral (default: 0x3C) 00099 */ 00100 KXTJ3(I2C* i2c_obj, int addr = KXTJ3_DEFAULT_SLAVE_ADDRESS); 00101 00102 /** 00103 * KXTJ3 destructor 00104 */ 00105 ~KXTJ3(); 00106 00107 /** Initializa KXTJ3 sensor 00108 * 00109 * Configure sensor setting 00110 * 00111 */ 00112 void initialize(void); 00113 00114 /** 00115 * Get X axis acceleration 00116 * 00117 * @returns X axis acceleration 00118 */ 00119 float getAccX(); 00120 00121 /** 00122 * Get Y axis acceleration 00123 * 00124 * @returns Y axis acceleration 00125 */ 00126 float getAccY(); 00127 00128 /** 00129 * Get Z axis acceleration 00130 * 00131 * @returns Z axis acceleration 00132 */ 00133 float getAccZ(); 00134 00135 /** 00136 * Get XYZ axis acceleration 00137 * 00138 * @param res array where acceleration data will be stored 00139 */ 00140 void getAccAllAxis(float * res); 00141 00142 private: 00143 I2C* m_i2c; 00144 int m_addr; 00145 void readRegs(int addr, uint8_t * data, int len); 00146 void writeRegs(uint8_t * data, int len); 00147 int16_t getAccAxis(uint8_t addr); 00148 00149 }; 00150 00151 #endif
Generated on Thu Jul 14 2022 00:27:58 by
1.7.2
