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 X_NUCLEO_IKS01A1 by
Diff: Components/lsm6ds3/lsm6ds3_class.h
- Revision:
- 52:54553fd15b50
- Parent:
- 50:f507d4465c31
- Child:
- 54:2a676c734b30
--- a/Components/lsm6ds3/lsm6ds3_class.h Mon Jun 08 18:04:19 2015 +0200
+++ b/Components/lsm6ds3/lsm6ds3_class.h Wed Jun 10 16:44:54 2015 +0200
@@ -53,7 +53,8 @@
/** Constructor
* @param i2c device I2C to be used for communication
*/
- LSM6DS3(DevI2C &i2c) : GyroSensor(), MotionSensor(), dev_i2c(i2c) {
+ LSM6DS3(DevI2C &i2c, PinName irq_pin) : GyroSensor(), MotionSensor(),
+ dev_i2c(i2c), free_fall(irq_pin) {
}
/** Destructor
@@ -137,6 +138,27 @@
IMU_6AXES_StatusTypeDef Get_Status_Free_Fall_Detection(uint8_t *status) {
return LSM6DS3_Get_Status_Free_Fall_Detection(status);
}
+
+ /** Attach a function to call when a free fall is detected
+ *
+ * @param fptr A pointer to a void function, or 0 to set as none
+ */
+ void Attach_Free_Fall_Detection_IRQ(void (*fptr)(void)) {
+ free_fall.mode(PullNone); /* be precise about pin mode */
+ free_fall.rise(fptr);
+ }
+
+ /** Enable Free Fall IRQ
+ */
+ void Enable_Free_Fall_Detection_IRQ(void) {
+ free_fall.enable_irq();
+ }
+
+ /** Disable free Fall IRQ
+ */
+ void Disable_Free_Fall_Detection_IRQ(void) {
+ free_fall.disable_irq();
+ }
protected:
/*** Methods ***/
@@ -171,7 +193,7 @@
*/
void LSM6DS3_IO_ITConfig(void)
{
- /* To be implemented */
+ /* done in constructor */
}
/**
@@ -227,6 +249,9 @@
/*** Instance Variables ***/
/* IO Device */
DevI2C &dev_i2c;
+
+ /* Free Fall Detection IRQ */
+ InterruptIn free_fall;
};
#endif // __LSM6DS3_CLASS_H
