27 #include <mraa/common.hpp>
28 #include <mraa/i2c.hpp>
30 #include <mraa/gpio.hpp>
32 #define LSM9DS0_I2C_BUS 1
33 #define LSM9DS0_DEFAULT_XM_ADDR 0x1d
34 #define LSM9DS0_DEFAULT_GYRO_ADDR 0x6b
91 REG_WHO_AM_I_G = 0x0f,
95 REG_CTRL_REG1_G = 0x20,
96 REG_CTRL_REG2_G = 0x21,
97 REG_CTRL_REG3_G = 0x22,
98 REG_CTRL_REG4_G = 0x23,
99 REG_CTRL_REG5_G = 0x24,
101 REG_REFERENCE_G = 0x25,
105 REG_STATUS_REG_G = 0x27,
107 REG_OUT_X_L_G = 0x28,
108 REG_OUT_X_H_G = 0x29,
109 REG_OUT_Y_L_G = 0x2a,
110 REG_OUT_Y_H_G = 0x2b,
111 REG_OUT_Z_L_G = 0x2c,
112 REG_OUT_Z_H_G = 0x2d,
114 REG_FIFO_CTRL_REG_G = 0x2e,
115 REG_FIFO_SRC_REG_G = 0x2f,
117 REG_INT1_CFG_G = 0x30,
118 REG_INT1_SRC_G = 0x31,
120 REG_INT1_TSH_XH_G = 0x32,
121 REG_INT1_TSH_XL_G = 0x33,
122 REG_INT1_TSH_YH_G = 0x34,
123 REG_INT1_TSH_YL_G = 0x35,
124 REG_INT1_TSH_ZH_G = 0x36,
125 REG_INT1_TSH_ZL_G = 0x37,
129 REG_INT1_DURATION_G = 0x38
136 CTRL_REG1_G_YEN = 0x01,
137 CTRL_REG1_G_XEN = 0x02,
138 CTRL_REG1_G_ZEN = 0x04,
139 CTRL_REG1_G_PD = 0x08,
141 CTRL_REG1_G_BW0 = 0x10,
142 CTRL_REG1_G_BW1 = 0x20,
143 _CTRL_REG1_G_BW_MASK = 3,
144 _CTRL_REG1_G_BW_SHIFT = 4,
146 CTRL_REG1_G_DR0 = 0x40,
147 CTRL_REG1_G_DR1 = 0x80,
148 _CTRL_REG1_G_DR_MASK = 3,
149 _CTRL_REG1_G_DR_SHIFT = 6,
160 CTRL_REG1_G_ODR0 = 0x10,
161 CTRL_REG1_G_ODR1 = 0x20,
162 CTRL_REG1_G_ODR2 = 0x40,
163 CTRL_REG1_G_ODR3 = 0x80,
164 _CTRL_REG1_G_ODR_MASK = 15,
165 _CTRL_REG1_G_ODR_SHIFT = 4
196 CTRL_REG2_G_HPCF0 = 0x01,
197 CTRL_REG2_G_HPCF1 = 0x02,
198 CTRL_REG2_G_HPCF2 = 0x04,
199 CTRL_REG2_G_HPCF3 = 0x08,
200 _CTRL_REG2_G_HPCF_MASK = 15,
201 _CTRL_REG2_G_HPCF_SHIFT = 0,
203 CTRL_REG2_G_HPM0 = 0x10,
204 CTRL_REG2_G_HPM1 = 0x20,
205 _CTRL_REG2_G_HPM_MASK = 3,
206 _CTRL_REG2_G_HPM_SHIFT = 4,
238 G_HPM_NORMAL_RESET_HPF = 0,
241 G_HPM_AUTORESET_ON_INTR = 3
248 CTRL_REG3_G_I2_EMPTY = 0x01,
249 CTRL_REG3_G_I2_ORUN = 0x02,
250 CTRL_REG3_G_I2_WTM = 0x04,
251 CTRL_REG3_G_I2_DRDY = 0x08,
252 CTRL_REG3_G_PP_OD = 0x10,
253 CTRL_REG3_G_H_LACTIVE = 0x20,
254 CTRL_REG3_G_I1_BOOT = 0x40,
255 CTRL_REG3_G_I1_INT1 = 0x80,
262 CTRL_REG4_G_SIM = 0x01,
264 CTRL_REG4_G_ST0 = 0x02,
265 CTRL_REG4_G_ST1 = 0x04,
266 _CTRL_REG4_G_ST_MASK = 3,
267 _CTRL_REG4_G_ST_SHIFT = 1,
271 CTRL_REG4_G_FS0 = 0x10,
272 CTRL_REG4_G_FS1 = 0x20,
273 _CTRL_REG4_G_FS_MASK = 3,
274 _CTRL_REG4_G_FS_SHIFT = 4,
276 CTRL_REG4_G_BLE = 0x40,
277 CTRL_REG4_G_BDU = 0x80
308 CTRL_REG5_G_OUTSEL0 = 0x01,
309 CTRL_REG5_G_OUTSEL1 = 0x02,
310 _CTRL_REG5_G_OUTSEL_MASK = 3,
311 _CTRL_REG5_G_OUTSEL_SHIFT = 0,
313 CTRL_REG5_G_INT1SEL0 = 0x04,
314 CTRL_REG5_G_INT1SEL1 = 0x08,
315 _CTRL_REG5_G_INT1SEL_MASK = 3,
316 _CTRL_REG5_G_INT1SEL_SHIFT = 2,
318 CTRL_REG5_G_HPEN = 0x10,
322 CTRL_REG5_G_FIFO_EN = 0x40,
323 CTRL_REG5_G_BOOT = 0x80
342 STATUS_REG_G_XDA = 0x01,
343 STATUS_REG_G_YDA = 0x02,
344 STATUS_REG_G_ZDA = 0x04,
345 STATUS_REG_G_ZYXDA = 0x08,
347 STATUS_REG_G_XOR = 0x10,
348 STATUS_REG_G_YOR = 0x20,
349 STATUS_REG_G_ZOR = 0x40,
350 STATUS_REG_G_ZYXOR = 0x80
357 FIFO_CTRL_REG_G_WTM0 = 0x01,
358 FIFO_CTRL_REG_G_WTM1 = 0x02,
359 FIFO_CTRL_REG_G_WTM2 = 0x04,
360 FIFO_CTRL_REG_G_WTM3 = 0x08,
361 FIFO_CTRL_REG_G_WTM4 = 0x10,
362 _FIFO_CTRL_REG_G_WTM_MASK = 31,
363 _FIFO_CTRL_REG_G_WTM_SHIFT = 0,
365 FIFO_CTRL_REG_G_FM0 = 0x20,
366 FIFO_CTRL_REG_G_FM1 = 0x40,
367 FIFO_CTRL_REG_G_FM2 = 0x80,
368 _FIFO_CTRL_REG_G_FM_MASK = 7,
369 _FIFO_CTRL_REG_G_FM_SHIFT = 5,
383 G_FM_STREAM2FIFO = 3,
384 G_FM_BYPASS2STREAM = 4
394 FIFO_CTRL_REG_G_FSS0 = 0x01,
395 FIFO_CTRL_REG_G_FSS1 = 0x02,
396 FIFO_CTRL_REG_G_FSS2 = 0x04,
397 FIFO_CTRL_REG_G_FSS3 = 0x08,
398 FIFO_CTRL_REG_G_FSS4 = 0x10,
399 _FIFO_CTRL_REG_G_FSS_MASK = 31,
400 _FIFO_CTRL_REG_G_FSS_SHIFT = 0,
402 FIFO_CTRL_REG_G_EMPTY = 0x20,
403 FIFO_CTRL_REG_G_OVRN = 0x40,
404 FIFO_CTRL_REG_G_WTM = 0x80
412 INT1_CFG_G_XLIE = 0x01,
413 INT1_CFG_G_XHIE = 0x02,
414 INT1_CFG_G_YLIE = 0x04,
415 INT1_CFG_G_YHIE = 0x08,
416 INT1_CFG_G_ZLIE = 0x10,
417 INT1_CFG_G_ZHIE = 0x20,
419 INT1_CFG_G_LIR = 0x40,
420 INT1_CFG_G_ANDOR = 0x80
428 INT1_SRC_G_XL = 0x01,
429 INT1_SRC_G_XH = 0x02,
430 INT1_SRC_G_YL = 0x04,
431 INT1_SRC_G_YH = 0x08,
432 INT1_SRC_G_ZL = 0x10,
433 INT1_SRC_G_ZH = 0x20,
449 REG_OUT_TEMP_L_XM = 0x05,
450 REG_OUT_TEMP_H_XM = 0x06,
452 REG_STATUS_REG_M = 0x07,
454 REG_OUT_X_L_M = 0x08,
455 REG_OUT_X_H_M = 0x09,
456 REG_OUT_Y_L_M = 0x0a,
457 REG_OUT_Y_H_M = 0x0b,
458 REG_OUT_Z_L_M = 0x0c,
459 REG_OUT_Z_H_M = 0x0d,
463 REG_WHO_AM_I_XM = 0x0f,
467 REG_INT_CTRL_REG_M = 0x12,
468 REG_INT_SRC_REG_M = 0x13,
470 REG_INT_THS_L_M = 0x14,
471 REG_INT_THS_H_M = 0x15,
473 REG_OFFSET_X_L_M = 0x16,
474 REG_OFFSET_X_H_M = 0x17,
475 REG_OFFSET_Y_L_M = 0x18,
476 REG_OFFSET_Y_H_M = 0x19,
477 REG_OFFSET_Z_L_M = 0x1a,
478 REG_OFFSET_Z_H_M = 0x1b,
480 REG_REFERENCE_X = 0x1c,
481 REG_REFERENCE_Y = 0x1d,
482 REG_REFERENCE_Z = 0x1e,
484 REG_CTRL_REG0_XM = 0x1f,
485 REG_CTRL_REG1_XM = 0x20,
486 REG_CTRL_REG2_XM = 0x21,
487 REG_CTRL_REG3_XM = 0x22,
488 REG_CTRL_REG4_XM = 0x23,
489 REG_CTRL_REG5_XM = 0x24,
490 REG_CTRL_REG6_XM = 0x25,
491 REG_CTRL_REG7_XM = 0x26,
493 REG_STATUS_REG_A = 0x27,
495 REG_OUT_X_L_A = 0x28,
496 REG_OUT_X_H_A = 0x29,
497 REG_OUT_Y_L_A = 0x2a,
498 REG_OUT_Y_H_A = 0x2b,
499 REG_OUT_Z_L_A = 0x2c,
500 REG_OUT_Z_H_A = 0x2d,
502 REG_FIFO_CTRL_REG = 0x2e,
503 REG_FIFO_SRC_REG = 0x2f,
505 REG_INT_GEN_1_REG = 0x30,
506 REG_INT_GEN_1_SRC = 0x31,
507 REG_INT_GEN_1_THS = 0x32,
508 REG_INT_GEN_1_DURATION = 0x33,
510 REG_INT_GEN_2_REG = 0x34,
511 REG_INT_GEN_2_SRC = 0x35,
512 REG_INT_GEN_2_THS = 0x36,
513 REG_INT_GEN_2_DURATION = 0x37,
515 REG_CLICK_CFG = 0x38,
516 REG_CLICK_SRC = 0x39,
517 REG_CLICK_THS = 0x3a,
519 REG_TIME_LIMIT = 0x3b,
520 REG_TIME_LATENCY = 0x3c,
521 REG_TIME_WINDOW = 0x3d,
531 STATUS_REG_M_XMDA = 0x01,
532 STATUS_REG_M_YMDA = 0x02,
533 STATUS_REG_M_ZMDA = 0x04,
534 STATUS_REG_M_ZYXMDA = 0x08,
536 STATUS_REG_M_XMOR = 0x10,
537 STATUS_REG_M_YMOR = 0x20,
538 STATUS_REG_M_ZMOR = 0x40,
539 STATUS_REG_M_ZYXMOR = 0x80
546 INT_CTRL_REG_M_MIEN = 0x01,
547 INT_CTRL_REG_M_4D = 0x02,
548 INT_CTRL_REG_M_IEL = 0x04,
549 INT_CTRL_REG_M_IEA = 0x08,
550 INT_CTRL_REG_M_PP_OD = 0x10,
551 INT_CTRL_REG_M_ZMIEN = 0x20,
552 INT_CTRL_REG_M_YMIEN = 0x40,
553 INT_CTRL_REG_M_XMIEN = 0x80
560 INT_SRC_REG_M_MINT = 0x01,
561 INT_SRC_REG_M_MROI = 0x02,
562 INT_SRC_REG_M_NTH_Z = 0x04,
563 INT_SRC_REG_M_NTH_Y = 0x08,
564 INT_SRC_REG_M_NTH_X = 0x10,
565 INT_SRC_REG_M_PTH_Z = 0x20,
566 INT_SRC_REG_M_PTH_Y = 0x40,
567 INT_SRC_REG_M_PTH_X = 0x80
575 CTRL_REG0_XM_HPIS2 = 0x01,
576 CTRL_REG0_XM_HPIS1 = 0x02,
578 CTRL_REG0_XM_HP_CLICK = 0x04,
582 CTRL_REG0_XM_WTM_LEN = 0x20,
583 CTRL_REG0_XM_FIFO_EN = 0x40,
584 CTRL_REG0_XM_BOOT = 0x80
591 CTRL_REG1_XM_AXEN = 0x01,
592 CTRL_REG1_XM_AYEN = 0x02,
593 CTRL_REG1_XM_AZEN = 0x03,
595 CTRL_REG1_XM_BDU = 0x04,
597 CTRL_REG1_XM_AODR0 = 0x10,
598 CTRL_REG1_XM_AODR1 = 0x20,
599 CTRL_REG1_XM_AODR2 = 0x40,
600 CTRL_REG1_XM_AODR3 = 0x80,
601 _CTRL_REG1_XM_AODR_MASK = 15,
602 _CTRL_REG1_XM_AODR_SHIFT = 4
627 CTRL_REG2_XM_SIM = 0x01,
629 CTRL_REG2_XM_AST0 = 0x02,
630 CTRL_REG2_XM_AST1 = 0x04,
631 _CTRL_REG2_XM_AST_MASK = 3,
632 _CTRL_REG2_XM_AST_SHIFT = 1,
634 CTRL_REG2_XM_AFS0 = 0x08,
635 CTRL_REG2_XM_AFS1 = 0x10,
636 CTRL_REG2_XM_AFS2 = 0x20,
637 _CTRL_REG2_XM_AFS_MASK = 7,
638 _CTRL_REG2_XM_AFS_SHIFT = 3,
640 CTRL_REG2_XM_ABW0 = 0x40,
641 CTRL_REG2_XM_ABW1 = 0x80,
642 _CTRL_REG2_XM_ABW_MASK = 3,
643 _CTRL_REG2_XM_ABW_SHIFT = 6
683 CTRL_REG3_XM_P1_EMPTY = 0x01,
684 CTRL_REG3_XM_P1_DRDYM = 0x02,
685 CTRL_REG3_XM_P1_DRDYA = 0x04,
686 CTRL_REG3_XM_P1_INTM = 0x08,
687 CTRL_REG3_XM_P1_INT2 = 0x10,
688 CTRL_REG3_XM_P1_INT1 = 0x20,
689 CTRL_REG3_XM_P1_TAP = 0x40,
690 CTRL_REG3_XM_P1_BOOT = 0x80
697 CTRL_REG4_XM_P2_WTM = 0x01,
698 CTRL_REG4_XM_P2_OVERRUN = 0x02,
699 CTRL_REG4_XM_P2_DRDYM = 0x04,
700 CTRL_REG4_XM_P2_DRDYA = 0x08,
701 CTRL_REG4_XM_P2_INTM = 0x10,
702 CTRL_REG4_XM_P2_INT2 = 0x20,
703 CTRL_REG4_XM_P2_INT1 = 0x40,
704 CTRL_REG4_XM_P2_TAP = 0x80
711 CTRL_REG5_XM_LIR1 = 0x01,
712 CTRL_REG5_XM_LIR2 = 0x02,
714 CTRL_REG5_XM_ODR0 = 0x04,
715 CTRL_REG5_XM_ODR1 = 0x08,
716 CTRL_REG5_XM_ODR2 = 0x10,
717 _CTRL_REG5_XM_ODR_MASK = 7,
718 _CTRL_REG5_XM_ODR_SHIFT = 2,
720 CTRL_REG5_XM_RES0 = 0x20,
721 CTRL_REG5_XM_RES1 = 0x40,
722 _CTRL_REG5_XM_RES_MASK = 3,
723 _CTRL_REG5_XM_RES_SHIFT = 5,
725 CTRL_REG5_XM_TEMP_EN = 0x80
759 CTRL_REG6_XM_MFS0 = 0x20,
760 CTRL_REG6_XM_MFS1 = 0x40,
761 _CTRL_REG6_XM_MFS_MASK = 3,
762 _CTRL_REG6_XM_MFS_SHIFT = 5
781 CTRL_REG7_XM_MD0 = 0x01,
782 CTRL_REG7_XM_MD1 = 0x02,
783 _CTRL_REG7_XM_MD_MASK = 3,
784 _CTRL_REG7_XM_MD_SHIFT = 0,
786 CTRL_REG7_XM_MLP = 0x04,
790 CTRL_REG7_XM_AFDS = 0x20,
792 CTRL_REG7_XM_AHPM0 = 0x40,
793 CTRL_REG7_XM_AHPM1 = 0x80,
794 _CTRL_REG7_XM_AHPM_MASK = 3,
795 _CTRL_REG7_XM_AHPM_SHIFT = 6
802 XM_MD_CONTINUOUS = 0,
816 XM_AHPM_NORMAL_REF = 0,
817 XM_AHPM_REFERENCE = 1,
819 XM_AHPM_AUTORESET = 3
826 STATUS_REG_A_XADA = 0x01,
827 STATUS_REG_A_YADA = 0x02,
828 STATUS_REG_A_ZADA = 0x04,
829 STATUS_REG_A_ZYXADA = 0x08,
831 STATUS_REG_A_XAOR = 0x10,
832 STATUS_REG_A_YAOR = 0x20,
833 STATUS_REG_A_ZAOR = 0x40,
834 STATUS_REG_A_ZYXAOR = 0x80
841 FIFO_CTRL_REG_FTH0 = 0x01,
842 FIFO_CTRL_REG_FTH1 = 0x02,
843 FIFO_CTRL_REG_FTH2 = 0x04,
844 FIFO_CTRL_REG_FTH3 = 0x08,
845 FIFO_CTRL_REG_FTH4 = 0x10,
846 _FIFO_CTRL_REG_FTH_MASK = 31,
847 _FIFO_CTRL_REG_FTH_SHIFT = 0,
849 FIFO_CTRL_REG_FM0 = 0x20,
850 FIFO_CTRL_REG_FM1 = 0x40,
851 FIFO_CTRL_REG_FM2 = 0x80,
852 _FIFO_CTRL_REG_FM_MASK = 7,
853 _FIFO_CTRL_REG_FM_SHIFT = 5,
878 FIFO_CTRL_REG_FSS0 = 0x01,
879 FIFO_CTRL_REG_FSS1 = 0x02,
880 FIFO_CTRL_REG_FSS2 = 0x04,
881 FIFO_CTRL_REG_FSS3 = 0x08,
882 FIFO_CTRL_REG_FSS4 = 0x10,
883 _FIFO_CTRL_REG_FSS_MASK = 31,
884 _FIFO_CTRL_REG_FSS_SHIFT = 0,
886 FIFO_CTRL_REG_EMPTY = 0x20,
887 FIFO_CTRL_REG_OVRN = 0x40,
888 FIFO_CTRL_REG_WTM = 0x80
896 INT_GEN_X_REG_XLIE_XDOWNE = 0x01,
897 INT_GEN_X_REG_XHIE_XUPE = 0x02,
898 INT_GEN_X_REG_YLIE_YDOWNE = 0x04,
899 INT_GEN_X_REG_YHIE_YUPE = 0x08,
900 INT_GEN_X_REG_ZLIE_ZDOWNE = 0x10,
901 INT_GEN_X_REG_ZHIE_ZUPE = 0x20,
902 INT_GEN_X_REG_6D = 0x40,
903 INT_GEN_X_REG_AOI = 0x80
911 INT_GEN_X_SRC_XL = 0x01,
912 INT_GEN_X_SRC_XH = 0x02,
913 INT_GEN_X_SRC_YL = 0x04,
914 INT_GEN_X_SRC_YH = 0x08,
915 INT_GEN_X_SRC_ZL = 0x10,
916 INT_GEN_X_SRC_ZH = 0x20,
917 INT_GEN_X_SRC_IA = 0x40
926 INT_GEN_X_THS0 = 0x01,
927 INT_GEN_X_THS1 = 0x02,
928 INT_GEN_X_THS2 = 0x04,
929 INT_GEN_X_THS3 = 0x08,
930 INT_GEN_X_THS4 = 0x10,
931 INT_GEN_X_THS5 = 0x20,
932 INT_GEN_X_THS6 = 0x40,
933 _INT_GEN_X_THS_MASK = 127,
934 _INT_GEN_X_THS_SHIFT = 0
943 INT_GEN_X_DUR0 = 0x01,
944 INT_GEN_X_DUR1 = 0x02,
945 INT_GEN_X_DUR2 = 0x04,
946 INT_GEN_X_DUR3 = 0x08,
947 INT_GEN_X_DUR4 = 0x10,
948 INT_GEN_X_DUR5 = 0x20,
949 INT_GEN_X_DUR6 = 0x40,
950 _INT_GEN_X_DUR_MASK = 127,
951 _INT_GEN_X_DUR_SHIFT = 0
960 CLICK_CONFIG_XS = 0x01,
961 CLICK_CONFIG_XD = 0x02,
962 CLICK_CONFIG_YS = 0x04,
963 CLICK_CONFIG_YD = 0x08,
964 CLICK_CONFIG_ZS = 0x10,
965 CLICK_CONFIG_ZD = 0x20
977 CLICK_SRC_SIGN = 0x08,
978 CLICK_SRC_SCLICK = 0x10,
979 CLICK_SRC_DCLICK = 0x20,
989 CLICK_THS_THS0 = 0x01,
990 CLICK_THS_THS1 = 0x02,
991 CLICK_THS_THS2 = 0x04,
992 CLICK_THS_THS3 = 0x08,
993 CLICK_THS_THS4 = 0x10,
994 CLICK_THS_THS5 = 0x20,
995 CLICK_THS_THS6 = 0x40,
996 _CLICK_THS_THS_MASK = 127,
997 _CLICK_THS_THS_SHIFT = 0
1006 CLICK_TIME_LIMIT_TLI0 = 0x01,
1007 CLICK_TIME_LIMIT_TLI1 = 0x02,
1008 CLICK_TIME_LIMIT_TLI2 = 0x04,
1009 CLICK_TIME_LIMIT_TLI3 = 0x08,
1010 CLICK_TIME_LIMIT_TLI4 = 0x10,
1011 CLICK_TIME_LIMIT_TLI5 = 0x20,
1012 CLICK_TIME_LIMIT_TLI6 = 0x40,
1013 _CLICK_TIME_LIMIT_TLI_MASK = 127,
1014 _CLICK_TIME_LIMIT_TLI_SHIFT = 0
1023 ACT_THS_ACTH0 = 0x01,
1024 ACT_THS_ACTH1 = 0x02,
1025 ACT_THS_ACTH2 = 0x04,
1026 ACT_THS_ACTH3 = 0x08,
1027 ACT_THS_ACTH4 = 0x10,
1028 ACT_THS_ACTH5 = 0x20,
1029 ACT_THS_ACTH6 = 0x40,
1030 _ACT_THS_ACTH_MASK = 127,
1031 _ACT_THS_ACTH_SHIFT = 0
1058 LSM9DS0(
int bus=LSM9DS0_I2C_BUS,
1059 uint8_t gAddress=LSM9DS0_DEFAULT_GYRO_ADDR,
1060 uint8_t xmAddress=LSM9DS0_DEFAULT_XM_ADDR);
1107 uint8_t
readReg(DEVICE_T dev, uint8_t reg);
1118 void readRegs(DEVICE_T dev, uint8_t reg, uint8_t *buffer,
int len);
1128 bool writeReg(DEVICE_T dev, uint8_t reg, uint8_t val);
1260 #if defined(SWIGJAVA) || defined(JAVACALLBACK)
1410 #if defined(SWIGJAVA) || defined(JAVACALLBACK)
1411 void installISR(INTERRUPT_PINS_T intr,
int gpio, mraa::Edge level,
1426 void installISR(INTERRUPT_PINS_T intr,
int gpio, mraa::Edge level,
1427 void (*isr)(
void *),
void *arg);
1463 static const uint8_t m_autoIncrementMode = 0x80;
1471 mraa::Gpio*& getPin(INTERRUPT_PINS_T intr);
1474 mraa::Gpio *m_gpioG_INT;
1475 mraa::Gpio *m_gpioG_DRDY;
1476 mraa::Gpio *m_gpioXM_GEN1;
1477 mraa::Gpio *m_gpioXM_GEN2;
XM_MD_T
Definition: lsm9ds0.h:801
bool setMagnetometerMode(XM_MD_T mode)
Definition: lsm9ds0.cxx:522
INT_CTRL_REG_M_BITS_T
Definition: lsm9ds0.h:545
float getTemperature()
Definition: lsm9ds0.cxx:647
void updateTemperature()
Definition: lsm9ds0.cxx:267
INT1_CFG_G_BITS_T
Definition: lsm9ds0.h:411
bool setInterruptGen1(uint8_t enables)
Definition: lsm9ds0.cxx:719
CTRL_REG0_XM_BITS_T
Definition: lsm9ds0.h:574
FIFO_SRC_REG_G_BITS_T
Definition: lsm9ds0.h:393
uint8_t getAccelerometerStatus()
Definition: lsm9ds0.cxx:679
bool setMagnetometerInterruptControl(uint8_t enables)
Definition: lsm9ds0.cxx:704
uint8_t readReg(DEVICE_T dev, uint8_t reg)
Definition: lsm9ds0.cxx:287
INT_SRC_REG_M_BITS_T
Definition: lsm9ds0.h:559
CLICK_THS_BITS_T
Definition: lsm9ds0.h:988
CLICK_CONFIG_BITS_T
Definition: lsm9ds0.h:959
G_HPM_T
Definition: lsm9ds0.h:237
bool setMagnetometerODR(XM_ODR_T odr)
Definition: lsm9ds0.cxx:511
ACT_THS_BITS_T
Definition: lsm9ds0.h:1022
REG_G_T
Definition: lsm9ds0.h:88
XM_AODR_T
Definition: lsm9ds0.h:608
XM_ABW_T
Definition: lsm9ds0.h:672
CTRL_REG2_G_BITS_T
Definition: lsm9ds0.h:195
CTRL_REG4_XM_BITS_T
Definition: lsm9ds0.h:696
FM_T
Definition: lsm9ds0.h:863
FIFO_SRC_REG_BITS_T
Definition: lsm9ds0.h:877
LSM9DS0(int bus=LSM9DS0_I2C_BUS, uint8_t gAddress=LSM9DS0_DEFAULT_GYRO_ADDR, uint8_t xmAddress=LSM9DS0_DEFAULT_XM_ADDR)
Definition: lsm9ds0.cxx:36
uint8_t getMagnetometerStatus()
Definition: lsm9ds0.cxx:674
void update()
Definition: lsm9ds0.cxx:205
FIFO_CTRL_REG_G_T
Definition: lsm9ds0.h:356
uint8_t getInterruptGen2Src()
Definition: lsm9ds0.cxx:739
CTRL_REG3_G_BITS_T
Definition: lsm9ds0.h:247
bool setAccelerometerScale(XM_AFS_T scale)
Definition: lsm9ds0.cxx:453
CLICK_SRC_BITS_T
Definition: lsm9ds0.h:973
void updateMagnetometer()
Definition: lsm9ds0.cxx:249
bool setGyroscopeODR(G_ODR_T odr)
Definition: lsm9ds0.cxx:376
INT_GEN_X_THS_BITS_T
Definition: lsm9ds0.h:925
uint8_t getMagnetometerInterruptControl()
Definition: lsm9ds0.cxx:699
INT_GEN_X_SRC_BITS_T
Definition: lsm9ds0.h:910
bool setGyroscopeInterruptConfig(uint8_t enables)
Definition: lsm9ds0.cxx:689
STATUS_REG_G_BITS_T
Definition: lsm9ds0.h:341
XM_MFS_T
Definition: lsm9ds0.h:770
bool setGyroscopeScale(G_FS_T scale)
Definition: lsm9ds0.cxx:387
bool setMagnetometerResolution(XM_RES_T res)
Definition: lsm9ds0.cxx:500
CLICK_TIME_LIMIT_BITS_T
Definition: lsm9ds0.h:1005
G_HPCF_T
Definition: lsm9ds0.h:218
API for the LSM9DS0 3-axis Gyroscope, Accelerometer, and Magnetometer.
Definition: lsm9ds0.h:74
uint8_t getGyroscopeInterruptConfig()
Definition: lsm9ds0.cxx:684
bool setGyroscopeEnableAxes(uint8_t axes)
Definition: lsm9ds0.cxx:360
G_ST_T
Definition: lsm9ds0.h:284
uint8_t getInterruptGen1Src()
Definition: lsm9ds0.cxx:724
void updateAccelerometer()
Definition: lsm9ds0.cxx:231
uint8_t getGyroscopeStatus()
Definition: lsm9ds0.cxx:669
CTRL_REG4_G_BITS_T
Definition: lsm9ds0.h:261
bool setMagnetometerScale(XM_MFS_T scale)
Definition: lsm9ds0.cxx:545
uint8_t getMagnetometerInterruptSrc()
Definition: lsm9ds0.cxx:709
CTRL_REG5_XM_BITS_T
Definition: lsm9ds0.h:710
void updateGyroscope()
Definition: lsm9ds0.cxx:213
uint8_t getInterruptGen1()
Definition: lsm9ds0.cxx:714
G_FM_T
Definition: lsm9ds0.h:379
CTRL_REG1_XM_BITS_T
Definition: lsm9ds0.h:590
bool setMagnetometerLPM(bool enable)
Definition: lsm9ds0.cxx:533
G_INT1OUTSEL_T
Definition: lsm9ds0.h:331
void getMagnetometer(float *x, float *y, float *z)
Definition: lsm9ds0.cxx:612
uint8_t getInterruptGen2()
Definition: lsm9ds0.cxx:729
STATUS_REG_M_BITS_T
Definition: lsm9ds0.h:530
CTRL_REG2_XM_BITS_T
Definition: lsm9ds0.h:626
INT_GEN_X_REG_BITS_T
Definition: lsm9ds0.h:895
void getGyroscope(float *x, float *y, float *z)
Definition: lsm9ds0.cxx:600
void readRegs(DEVICE_T dev, uint8_t reg, uint8_t *buffer, int len)
Definition: lsm9ds0.cxx:304
XM_ODR_T
Definition: lsm9ds0.h:731
XM_AHPM_T
Definition: lsm9ds0.h:811
bool setGyroscopePowerDown(bool enable)
Definition: lsm9ds0.cxx:348
CTRL_REG1_G_BITS_T
Definition: lsm9ds0.h:135
bool writeReg(DEVICE_T dev, uint8_t reg, uint8_t val)
Definition: lsm9ds0.cxx:323
CTRL_REG3_XM_BITS_T
Definition: lsm9ds0.h:682
INT_GEN_X_DUR_BITS_T
Definition: lsm9ds0.h:942
bool setInterruptGen2(uint8_t enables)
Definition: lsm9ds0.cxx:734
REG_XM_T
Definition: lsm9ds0.h:446
void getAccelerometer(float *x, float *y, float *z)
Definition: lsm9ds0.cxx:588
void installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level, void(*isr)(void *), void *arg)
Definition: lsm9ds0.cxx:759
XM_AST_T
Definition: lsm9ds0.h:649
bool setAccelerometerEnableAxes(uint8_t axes)
Definition: lsm9ds0.cxx:426
bool enableTemperatureSensor(bool enable)
Definition: lsm9ds0.cxx:657
XM_RES_T
Definition: lsm9ds0.h:745
G_FS_T
Definition: lsm9ds0.h:297
G_ODR_T
Definition: lsm9ds0.h:171
INT1_SRC_G_BITS_T
Definition: lsm9ds0.h:427
bool setAccelerometerODR(XM_AODR_T odr)
Definition: lsm9ds0.cxx:442
CTRL_REG7_XM_BITS_T
Definition: lsm9ds0.h:780
CTRL_REG5_G_BITS_T
Definition: lsm9ds0.h:307
XM_AFS_T
Definition: lsm9ds0.h:659
FIFO_CTRL_REG_T
Definition: lsm9ds0.h:840
CTRL_REG6_XM_BITS_T
Definition: lsm9ds0.h:756
bool init()
Definition: lsm9ds0.cxx:85
~LSM9DS0()
Definition: lsm9ds0.cxx:77
uint8_t getGyroscopeInterruptSrc()
Definition: lsm9ds0.cxx:694
STATUS_REG_A_BITS_T
Definition: lsm9ds0.h:825
void uninstallISR(INTERRUPT_PINS_T intr)
Definition: lsm9ds0.cxx:773