1 /* 2 $License: 3 Copyright 2011 InvenSense, Inc. 4 5 Licensed under the Apache License, Version 2.0 (the "License"); 6 you may not use this file except in compliance with the License. 7 You may obtain a copy of the License at 8 9 http://www.apache.org/licenses/LICENSE-2.0 10 11 Unless required by applicable law or agreed to in writing, software 12 distributed under the License is distributed on an "AS IS" BASIS, 13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 See the License for the specific language governing permissions and 15 limitations under the License. 16 $ 17 */ 18 19 /* WARNING: autogenerated code, do not modify */ 20 /** 21 * @defgroup DMPDEFAULT 22 * @brief 23 * 24 * @{ 25 * @file inv_setup_dmpMantis.c 26 * @brief 27 * 28 * 29 */ 30 31 #include "mltypes.h" 32 #include "dmpDefault.h" 33 #include "dmpKey.h" 34 #include "dmpmap.h" 35 #include "mldl.h" 36 37 #define CFG_25 1786 38 #define CFG_24 1782 39 #define CFG_26 1790 40 #define CFG_21 1899 41 #define CFG_20 1728 42 #define CFG_23 1911 43 #define CFG_TAP4 1905 44 #define CFG_TAP5 1906 45 #define CFG_TAP6 1907 46 #define CFG_1 1865 47 #define CFG_TAP0 1899 48 #define CFG_TAP1 1901 49 #define CFG_TAP2 1902 50 #define CFG_TAP_SAVE_ACCB 1770 51 #define CFG_ORIENT_IRQ_1 1798 52 #define CFG_ORIENT_IRQ_2 1821 53 #define CFG_ORIENT_IRQ_3 1826 54 #define FCFG_MAG_VAL 774 55 #define CFG_TAP_QUANTIZE 1730 56 #define FCFG_3 936 57 #define FCFG_1 891 58 #define CFG_ACCEL_FILTER 1076 59 #define FCFG_2 895 60 #define CFG_3D 1629 61 #define FCFG_7 902 62 #define CFG_3C 1627 63 #define FCFG_5 1030 64 #define FCFG_4 880 65 #define CFG_3B 1625 66 #define CFG_TAP_JERK 1722 67 #define FCFG_6 954 68 #define CFG_12 1894 69 #define CFG_TAP7 1908 70 #define CFG_14 1871 71 #define CFG_15 1876 72 #define CFG_16 1912 73 #define CFG_TAP_CLEAR_STICKY 1914 74 #define CFG_6 1920 75 #define CFG_7 1014 76 #define CFG_4 1634 77 #define CFG_5 1831 78 #define CFG_3 1623 79 #define CFG_GYRO_SOURCE 1859 80 #define CFG_TAP3 1903 81 #define CFG_EXTERNAL 1884 82 #define CFG_8 1854 83 #define CFG_9 1860 84 #define CFG_ORIENT_2 1816 85 #define CFG_ORIENT_1 1796 86 #define CFG_MOTION_BIAS 1023 87 #define FCFG_MAG_MOV 791 88 #define TEMPLABEL 1491 89 #define FCFG_ACCEL_INIT 847 90 91 92 #define D_0_22 (22+512) 93 #define D_0_24 (24+512) 94 95 #define D_0_36 (36) 96 #define D_0_52 (52) 97 #define D_0_96 (96) 98 #define D_0_104 (104) 99 #define D_0_108 (108) 100 #define D_0_163 (163) 101 #define D_0_188 (188) 102 #define D_0_192 (192) 103 #define D_0_224 (224) 104 #define D_0_228 (228) 105 #define D_0_232 (232) 106 #define D_0_236 (236) 107 108 #define D_1_2 (256 + 2) 109 #define D_1_4 (256 + 4) 110 #define D_1_8 (256 + 8) 111 #define D_1_10 (256 + 10) 112 #define D_1_24 (256 + 24) 113 #define D_1_28 (256 + 28) 114 #define D_1_92 (256 + 92) 115 #define D_1_96 (256 + 96) 116 #define D_1_98 (256 + 98) 117 #define D_1_106 (256 + 106) 118 #define D_1_108 (256 + 108) 119 #define D_1_112 (256 + 112) 120 #define D_1_128 (256 + 144) 121 #define D_1_152 (256 + 12) 122 #define D_1_168 (256 + 168) 123 #define D_1_175 (256 + 175) 124 #define D_1_178 (256 + 178) 125 #define D_1_236 (256 + 236) 126 #define D_1_244 (256 + 244) 127 #define D_2_12 (512+12) 128 #define D_2_96 (512+96) 129 #define D_2_108 (512+108) 130 #define D_2_244 (512+244) 131 #define D_2_248 (512+248) 132 #define D_2_252 (512+252) 133 134 #define CPASS_BIAS_X (35*16+4) 135 #define CPASS_BIAS_Y (35*16+8) 136 #define CPASS_BIAS_Z (35*16+12) 137 #define CPASS_MTX_00 (36*16) 138 #define CPASS_MTX_01 (36*16+4) 139 #define CPASS_MTX_02 (36*16+8) 140 #define CPASS_MTX_10 (36*16+12) 141 #define CPASS_MTX_11 (37*16) 142 #define CPASS_MTX_12 (37*16+4) 143 #define CPASS_MTX_20 (37*16+8) 144 #define CPASS_MTX_21 (37*16+12) 145 #define CPASS_MTX_22 (43*16+12) 146 #define D_ACT0 (40*16) 147 #define D_ACSX (40*16+4) 148 #define D_ACSY (40*16+8) 149 #define D_ACSZ (40*16+12) 150 151 static const tKeyLabel dmpTConfig[] = { 152 {KEY_CFG_25, CFG_25}, 153 {KEY_CFG_24, CFG_24}, 154 {KEY_CFG_26, CFG_26}, 155 {KEY_CFG_21, CFG_21}, 156 {KEY_CFG_20, CFG_20}, 157 {KEY_CFG_23, CFG_23}, 158 {KEY_CFG_TAP4, CFG_TAP4}, 159 {KEY_CFG_TAP5, CFG_TAP5}, 160 {KEY_CFG_TAP6, CFG_TAP6}, 161 {KEY_CFG_1, CFG_1}, 162 {KEY_CFG_TAP0, CFG_TAP0}, 163 {KEY_CFG_TAP1, CFG_TAP1}, 164 {KEY_CFG_TAP2, CFG_TAP2}, 165 {KEY_CFG_TAP_SAVE_ACCB, CFG_TAP_SAVE_ACCB}, 166 {KEY_CFG_ORIENT_IRQ_1, CFG_ORIENT_IRQ_1}, 167 {KEY_CFG_ORIENT_IRQ_2, CFG_ORIENT_IRQ_2}, 168 {KEY_CFG_ORIENT_IRQ_3, CFG_ORIENT_IRQ_3}, 169 {KEY_FCFG_MAG_VAL, FCFG_MAG_VAL}, 170 {KEY_CFG_TAP_QUANTIZE, CFG_TAP_QUANTIZE}, 171 {KEY_FCFG_3, FCFG_3}, 172 {KEY_FCFG_1, FCFG_1}, 173 // {KEY_CFG_ACCEL_FILTER, CFG_ACCEL_FILTER}, 174 {KEY_FCFG_2, FCFG_2}, 175 {KEY_CFG_3D, CFG_3D}, 176 {KEY_FCFG_7, FCFG_7}, 177 {KEY_CFG_3C, CFG_3C}, 178 {KEY_FCFG_5, FCFG_5}, 179 {KEY_FCFG_4, FCFG_4}, 180 {KEY_CFG_3B, CFG_3B}, 181 {KEY_CFG_TAP_JERK, CFG_TAP_JERK}, 182 {KEY_FCFG_6, FCFG_6}, 183 {KEY_CFG_12, CFG_12}, 184 {KEY_CFG_TAP7, CFG_TAP7}, 185 {KEY_CFG_14, CFG_14}, 186 {KEY_CFG_15, CFG_15}, 187 {KEY_CFG_16, CFG_16}, 188 {KEY_CFG_TAP_CLEAR_STICKY, CFG_TAP_CLEAR_STICKY}, 189 {KEY_CFG_6, CFG_6}, 190 {KEY_CFG_7, CFG_7}, 191 {KEY_CFG_4, CFG_4}, 192 {KEY_CFG_5, CFG_5}, 193 {KEY_CFG_3, CFG_3}, 194 {KEY_CFG_GYRO_SOURCE, CFG_GYRO_SOURCE}, 195 {KEY_CFG_TAP3, CFG_TAP3}, 196 {KEY_CFG_EXTERNAL, CFG_EXTERNAL}, 197 {KEY_CFG_8, CFG_8}, 198 {KEY_CFG_9, CFG_9}, 199 {KEY_CFG_ORIENT_2, CFG_ORIENT_2}, 200 {KEY_CFG_ORIENT_1, CFG_ORIENT_1}, 201 {KEY_CFG_MOTION_BIAS, CFG_MOTION_BIAS}, 202 {KEY_FCFG_MAG_MOV, FCFG_MAG_MOV}, 203 // {KEY_TEMPLABEL, TEMPLABEL}, 204 {KEY_FCFG_ACCEL_INIT, FCFG_ACCEL_INIT}, 205 {KEY_D_0_22, D_0_22}, 206 {KEY_D_0_24, D_0_24}, 207 {KEY_D_0_36, D_0_36}, 208 {KEY_D_0_52, D_0_52}, 209 {KEY_D_0_96, D_0_96}, 210 {KEY_D_0_104, D_0_104}, 211 {KEY_D_0_108, D_0_108}, 212 {KEY_D_0_163, D_0_163}, 213 {KEY_D_0_188, D_0_188}, 214 {KEY_D_0_192, D_0_192}, 215 {KEY_D_0_224, D_0_224}, 216 {KEY_D_0_228, D_0_228}, 217 {KEY_D_0_232, D_0_232}, 218 {KEY_D_0_236, D_0_236}, 219 220 {KEY_DMP_PREVPTAT, DMP_PREVPTAT}, 221 {KEY_D_1_2, D_1_2}, 222 {KEY_D_1_4, D_1_4}, 223 {KEY_D_1_8, D_1_8}, 224 {KEY_D_1_10, D_1_10}, 225 {KEY_D_1_24, D_1_24}, 226 {KEY_D_1_28, D_1_28}, 227 {KEY_D_1_92, D_1_92}, 228 {KEY_D_1_96, D_1_96}, 229 {KEY_D_1_98, D_1_98}, 230 {KEY_D_1_106, D_1_106}, 231 {KEY_D_1_108, D_1_108}, 232 {KEY_D_1_112, D_1_112}, 233 {KEY_D_1_128, D_1_128}, 234 {KEY_D_1_152, D_1_152}, 235 {KEY_D_1_168, D_1_168}, 236 {KEY_D_1_175, D_1_175}, 237 {KEY_D_1_178, D_1_178}, 238 {KEY_D_1_236, D_1_236}, 239 {KEY_D_1_244, D_1_244}, 240 241 {KEY_D_2_12, D_2_12}, 242 {KEY_D_2_96, D_2_96}, 243 {KEY_D_2_108, D_2_108}, 244 {KEY_D_2_244, D_2_244}, 245 {KEY_D_2_248, D_2_248}, 246 {KEY_D_2_252, D_2_252}, 247 248 {KEY_DMP_TAPW_MIN, DMP_TAPW_MIN}, 249 {KEY_DMP_TAP_THR_X, DMP_TAP_THX}, 250 {KEY_DMP_TAP_THR_Y, DMP_TAP_THY}, 251 {KEY_DMP_TAP_THR_Z, DMP_TAP_THZ}, 252 {KEY_DMP_SH_TH_Y, DMP_SH_TH_Y}, 253 {KEY_DMP_SH_TH_X, DMP_SH_TH_X}, 254 {KEY_DMP_SH_TH_Z, DMP_SH_TH_Z}, 255 {KEY_DMP_ORIENT, DMP_ORIENT}, 256 257 {KEY_CPASS_BIAS_X, CPASS_BIAS_X}, 258 {KEY_CPASS_BIAS_Y, CPASS_BIAS_Y}, 259 {KEY_CPASS_BIAS_Z, CPASS_BIAS_Z}, 260 {KEY_CPASS_MTX_00, CPASS_MTX_00}, 261 {KEY_CPASS_MTX_01, CPASS_MTX_01}, 262 {KEY_CPASS_MTX_02, CPASS_MTX_02}, 263 {KEY_CPASS_MTX_10, CPASS_MTX_10}, 264 {KEY_CPASS_MTX_11, CPASS_MTX_11}, 265 {KEY_CPASS_MTX_12, CPASS_MTX_12}, 266 {KEY_CPASS_MTX_20, CPASS_MTX_20}, 267 {KEY_CPASS_MTX_21, CPASS_MTX_21}, 268 {KEY_CPASS_MTX_22, CPASS_MTX_22}, 269 {KEY_D_ACT0, D_ACT0}, 270 {KEY_D_ACSX, D_ACSX}, 271 {KEY_D_ACSY, D_ACSY}, 272 {KEY_D_ACSZ, D_ACSZ} 273 }; 274 #define NUM_LOCAL_KEYS (sizeof(dmpTConfig)/sizeof(dmpTConfig[0])) 275 276 #define DMP_CODE_SIZE 1923 277 278 static const unsigned char dmpMemory[DMP_CODE_SIZE] = { 279 0xfb, 0x00, 0x00, 0x3e, 0x00, 0x0b, 0x00, 0x36, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 280 0x00, 0x65, 0x00, 0x54, 0xff, 0xef, 0x00, 0x00, 0xfa, 0x80, 0x00, 0x0b, 0x12, 0x82, 0x00, 0x01, 281 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 282 0x00, 0x28, 0x00, 0x00, 0xff, 0xff, 0x45, 0x81, 0xff, 0xff, 0xfa, 0x72, 0x00, 0x00, 0x00, 0x00, 283 0x00, 0x00, 0x03, 0xe8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x7f, 0xff, 0xff, 0xfe, 0x80, 0x01, 284 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 285 0x00, 0x3e, 0x03, 0x30, 0x40, 0x00, 0x00, 0x00, 0x02, 0xca, 0xe3, 0x09, 0x3e, 0x80, 0x00, 0x00, 286 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 287 0x41, 0xff, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x2a, 0x00, 0x00, 0x16, 0x55, 0x00, 0x00, 0x21, 0x82, 288 0xfd, 0x87, 0x26, 0x50, 0xfd, 0x80, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x05, 0x80, 0x00, 289 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 290 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x6f, 0x00, 0x02, 0x65, 0x32, 0x00, 0x00, 0x5e, 0xc0, 291 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 292 0xfb, 0x8c, 0x6f, 0x5d, 0xfd, 0x5d, 0x08, 0xd9, 0x00, 0x7c, 0x73, 0x3b, 0x00, 0x6c, 0x12, 0xcc, 293 0x32, 0x00, 0x13, 0x9d, 0x32, 0x00, 0xd0, 0xd6, 0x32, 0x00, 0x08, 0x00, 0x40, 0x00, 0x01, 0xf4, 294 0xff, 0xe6, 0x80, 0x79, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0xd6, 0x00, 0x00, 0x27, 0x10, 295 0xfb, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 296 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 297 0x00, 0x00, 0xfa, 0x36, 0xff, 0xbc, 0x30, 0x8e, 0x00, 0x05, 0xfb, 0xf0, 0xff, 0xd9, 0x5b, 0xc8, 298 0xff, 0xd0, 0x9a, 0xbe, 0x00, 0x00, 0x10, 0xa9, 0xff, 0xf4, 0x1e, 0xb2, 0x00, 0xce, 0xbb, 0xf7, 299 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x02, 0x00, 0x00, 0x0c, 300 0xff, 0xc2, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0xcf, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 301 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x14, 302 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 303 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 304 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 305 0x00, 0x00, 0x00, 0x00, 0x03, 0x3f, 0x68, 0xb6, 0x79, 0x35, 0x28, 0xbc, 0xc6, 0x7e, 0xd1, 0x6c, 306 0x80, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb2, 0x6a, 0x00, 0x00, 0x00, 0x00, 307 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x30, 308 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 309 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 310 0x00, 0x00, 0x25, 0x4d, 0x00, 0x2f, 0x70, 0x6d, 0x00, 0x00, 0x05, 0xae, 0x00, 0x0c, 0x02, 0xd0, 311 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x00, 0x54, 0xff, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 312 0x00, 0x00, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 313 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0xff, 0xef, 0x00, 0x00, 314 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 315 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 316 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 317 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 318 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 319 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 320 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 321 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 322 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 323 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 324 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 325 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 326 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 327 328 0xd8, 0xdc, 0xba, 0xa2, 0xf1, 0xde, 0xb2, 0xb8, 0xb4, 0xa8, 0x81, 0x91, 0xf7, 0x4a, 0x90, 0x7f, 329 0x91, 0x6a, 0xf3, 0xf9, 0xdb, 0xa8, 0xf9, 0xb0, 0xba, 0xa0, 0x80, 0xf2, 0xce, 0x81, 0xf3, 0xc2, 330 0xf1, 0xc1, 0xf2, 0xc3, 0xf3, 0xcc, 0xa2, 0xb2, 0x80, 0xf1, 0xc6, 0xd8, 0x80, 0xba, 0xa7, 0xdf, 331 0xdf, 0xdf, 0xf2, 0xa7, 0xc3, 0xcb, 0xc5, 0xb6, 0xf0, 0x87, 0xa2, 0x94, 0x24, 0x48, 0x70, 0x3c, 332 0x95, 0x40, 0x68, 0x34, 0x58, 0x9b, 0x78, 0xa2, 0xf1, 0x83, 0x92, 0x2d, 0x55, 0x7d, 0xd8, 0xb1, 333 0xb4, 0xb8, 0xa1, 0xd0, 0x91, 0x80, 0xf2, 0x70, 0xf3, 0x70, 0xf2, 0x7c, 0x80, 0xa8, 0xf1, 0x01, 334 0xb0, 0x98, 0x87, 0xd9, 0x43, 0xd8, 0x86, 0xc9, 0x88, 0xba, 0xa1, 0xf2, 0x0e, 0xb8, 0x97, 0x80, 335 0xf1, 0xa9, 0xdf, 0xdf, 0xdf, 0xaa, 0xdf, 0xdf, 0xdf, 0xf2, 0xaa, 0xc5, 0xcd, 0xc7, 0xa9, 0xc1, 336 0xc9, 0xc3, 0x97, 0xf1, 0xa9, 0x89, 0x26, 0x46, 0x66, 0xb0, 0xb4, 0xba, 0x80, 0xac, 0xde, 0xf2, 337 0xca, 0xf1, 0xb2, 0x8c, 0x02, 0xa9, 0xb6, 0x98, 0x00, 0x89, 0x0e, 0x16, 0x1e, 0xb8, 0xa9, 0xb4, 338 0x99, 0x2c, 0x54, 0x7c, 0xb0, 0x8a, 0xa8, 0x96, 0x36, 0x56, 0x76, 0xf1, 0xb9, 0xaf, 0xb4, 0xb0, 339 0x83, 0xc0, 0xb8, 0xa8, 0x97, 0x11, 0xb1, 0x8f, 0x98, 0xb9, 0xaf, 0xf0, 0x24, 0x08, 0x44, 0x10, 340 0x64, 0x18, 0xf1, 0xa3, 0x29, 0x55, 0x7d, 0xaf, 0x83, 0xb5, 0x93, 0xaf, 0xf0, 0x00, 0x28, 0x50, 341 0xf1, 0xa3, 0x86, 0x9f, 0x61, 0xa6, 0xda, 0xde, 0xdf, 0xd9, 0xfa, 0xa3, 0x86, 0x96, 0xdb, 0x31, 342 0xa6, 0xd9, 0xf8, 0xdf, 0xba, 0xa6, 0x8f, 0xc2, 0xc5, 0xc7, 0xb2, 0x8c, 0xc1, 0xb8, 0xa2, 0xdf, 343 0xdf, 0xdf, 0xa3, 0xdf, 0xdf, 0xdf, 0xd8, 0xd8, 0xf1, 0xb8, 0xa8, 0xb2, 0x86, 0xb4, 0x98, 0x0d, 344 0x35, 0x5d, 0xb8, 0xaa, 0x98, 0xb0, 0x87, 0x2d, 0x35, 0x3d, 0xb2, 0xb6, 0xba, 0xaf, 0x8c, 0x96, 345 0x19, 0x8f, 0x9f, 0xa7, 0x0e, 0x16, 0x1e, 0xb4, 0x9a, 0xb8, 0xaa, 0x87, 0x2c, 0x54, 0x7c, 0xb9, 346 0xa3, 0xde, 0xdf, 0xdf, 0xa3, 0xb1, 0x80, 0xf2, 0xc4, 0xcd, 0xc9, 0xf1, 0xb8, 0xa9, 0xb4, 0x99, 347 0x83, 0x0d, 0x35, 0x5d, 0x89, 0xb9, 0xa3, 0x2d, 0x55, 0x7d, 0xb5, 0x93, 0xa3, 0x0e, 0x16, 0x1e, 348 0xa9, 0x2c, 0x54, 0x7c, 0xb8, 0xb4, 0xb0, 0xf1, 0x97, 0x83, 0xa8, 0x11, 0x84, 0xa5, 0x09, 0x98, 349 0xa3, 0x83, 0xf0, 0xda, 0x24, 0x08, 0x44, 0x10, 0x64, 0x18, 0xd8, 0xf1, 0xa5, 0x29, 0x55, 0x7d, 350 0xa5, 0x85, 0x95, 0x02, 0x1a, 0x2e, 0x3a, 0x56, 0x5a, 0x40, 0x48, 0xf9, 0xf3, 0xa3, 0xd9, 0xf8, 351 0xf0, 0x98, 0x83, 0x24, 0x08, 0x44, 0x10, 0x64, 0x18, 0x97, 0x82, 0xa8, 0xf1, 0x11, 0xf0, 0x98, 352 0xa2, 0x24, 0x08, 0x44, 0x10, 0x64, 0x18, 0xda, 0xf3, 0xde, 0xd8, 0x83, 0xa5, 0x94, 0x01, 0xd9, 353 0xa3, 0x02, 0xf1, 0xa2, 0xc3, 0xc5, 0xc7, 0xd8, 0xf1, 0x84, 0x92, 0xa2, 0x4d, 0xda, 0x2a, 0xd8, 354 0x48, 0x69, 0xd9, 0x2a, 0xd8, 0x68, 0x55, 0xda, 0x32, 0xd8, 0x50, 0x71, 0xd9, 0x32, 0xd8, 0x70, 355 0x5d, 0xda, 0x3a, 0xd8, 0x58, 0x79, 0xd9, 0x3a, 0xd8, 0x78, 0x93, 0xa3, 0x4d, 0xda, 0x2a, 0xd8, 356 0x48, 0x69, 0xd9, 0x2a, 0xd8, 0x68, 0x55, 0xda, 0x32, 0xd8, 0x50, 0x71, 0xd9, 0x32, 0xd8, 0x70, 357 0x5d, 0xda, 0x3a, 0xd8, 0x58, 0x79, 0xd9, 0x3a, 0xd8, 0x78, 0xa8, 0x8a, 0x9a, 0xf0, 0x28, 0x50, 358 0x78, 0x9e, 0xf3, 0x88, 0x18, 0xf1, 0x9f, 0x1d, 0x98, 0xa8, 0xd9, 0x08, 0xd8, 0xc8, 0x9f, 0x12, 359 0x9e, 0xf3, 0x15, 0xa8, 0xda, 0x12, 0x10, 0xd8, 0xf1, 0xaf, 0xc8, 0x97, 0x87, 0x34, 0xb5, 0xb9, 360 0x94, 0xa4, 0x21, 0xf3, 0xd9, 0x22, 0xd8, 0xf2, 0x2d, 0xf3, 0xd9, 0x2a, 0xd8, 0xf2, 0x35, 0xf3, 361 0xd9, 0x32, 0xd8, 0x81, 0xa4, 0x60, 0x60, 0x61, 0xd9, 0x61, 0xd8, 0x6c, 0x68, 0x69, 0xd9, 0x69, 362 0xd8, 0x74, 0x70, 0x71, 0xd9, 0x71, 0xd8, 0xb1, 0xa3, 0x84, 0x19, 0x3d, 0x5d, 0xa3, 0x83, 0x1a, 363 0x3e, 0x5e, 0x93, 0x10, 0x30, 0x81, 0x10, 0x11, 0xb8, 0xb0, 0xaf, 0x8f, 0x94, 0xf2, 0xda, 0x3e, 364 0xd8, 0xb4, 0x9a, 0xa8, 0x87, 0x29, 0xda, 0xf8, 0xd8, 0x87, 0x9a, 0x35, 0xda, 0xf8, 0xd8, 0x87, 365 0x9a, 0x3d, 0xda, 0xf8, 0xd8, 0xb1, 0xb9, 0xa4, 0x98, 0x85, 0x02, 0x2e, 0x56, 0xa5, 0x81, 0x00, 366 0x0c, 0x14, 0xa3, 0x97, 0xb0, 0x8a, 0xf1, 0x2d, 0xd9, 0x28, 0xd8, 0x4d, 0xd9, 0x48, 0xd8, 0x6d, 367 0xd9, 0x68, 0xd8, 0xb1, 0x84, 0x0d, 0xda, 0x0e, 0xd8, 0xa3, 0x29, 0x83, 0xda, 0x2c, 0x0e, 0xd8, 368 0xa3, 0x84, 0x49, 0x83, 0xda, 0x2c, 0x4c, 0x0e, 0xd8, 0xb8, 0xb0, 0xa8, 0x8a, 0x9a, 0xf5, 0x20, 369 0xaa, 0xda, 0xdf, 0xd8, 0xa8, 0x40, 0xaa, 0xd0, 0xda, 0xde, 0xd8, 0xa8, 0x60, 0xaa, 0xda, 0xd0, 370 0xdf, 0xd8, 0xf1, 0x97, 0x86, 0xa8, 0x31, 0x9b, 0x06, 0x99, 0x07, 0xab, 0x97, 0x28, 0x88, 0x9b, 371 0xf0, 0x0c, 0x20, 0x14, 0x40, 0xb8, 0xb0, 0xb4, 0xa8, 0x8c, 0x9c, 0xf0, 0x04, 0x28, 0x51, 0x79, 372 0x1d, 0x30, 0x14, 0x38, 0xb2, 0x82, 0xab, 0xd0, 0x98, 0x2c, 0x50, 0x50, 0x78, 0x78, 0x9b, 0xf1, 373 0x1a, 0xb0, 0xf0, 0x8a, 0x9c, 0xa8, 0x29, 0x51, 0x79, 0x8b, 0x29, 0x51, 0x79, 0x8a, 0x24, 0x70, 374 0x59, 0x8b, 0x20, 0x58, 0x71, 0x8a, 0x44, 0x69, 0x38, 0x8b, 0x39, 0x40, 0x68, 0x8a, 0x64, 0x48, 375 0x31, 0x8b, 0x30, 0x49, 0x60, 0xa5, 0x88, 0x20, 0x09, 0x71, 0x58, 0x44, 0x68, 0x11, 0x39, 0x64, 376 0x49, 0x30, 0x19, 0xf1, 0xac, 0x00, 0x2c, 0x54, 0x7c, 0xf0, 0x8c, 0xa8, 0x04, 0x28, 0x50, 0x78, 377 0xf1, 0x88, 0x97, 0x26, 0xa8, 0x59, 0x98, 0xac, 0x8c, 0x02, 0x26, 0x46, 0x66, 0xf0, 0x89, 0x9c, 378 0xa8, 0x29, 0x51, 0x79, 0x24, 0x70, 0x59, 0x44, 0x69, 0x38, 0x64, 0x48, 0x31, 0xa9, 0x88, 0x09, 379 0x20, 0x59, 0x70, 0xab, 0x11, 0x38, 0x40, 0x69, 0xa8, 0x19, 0x31, 0x48, 0x60, 0x8c, 0xa8, 0x3c, 380 0x41, 0x5c, 0x20, 0x7c, 0x00, 0xf1, 0x87, 0x98, 0x19, 0x86, 0xa8, 0x6e, 0x76, 0x7e, 0xa9, 0x99, 381 0x88, 0x2d, 0x55, 0x7d, 0x9e, 0xb9, 0xa3, 0x8a, 0x22, 0x8a, 0x6e, 0x8a, 0x56, 0x8a, 0x5e, 0x9f, 382 0xb1, 0x83, 0x06, 0x26, 0x46, 0x66, 0x0e, 0x2e, 0x4e, 0x6e, 0x9d, 0xb8, 0xad, 0x00, 0x2c, 0x54, 383 0x7c, 0xf2, 0xb1, 0x8c, 0xb4, 0x99, 0xb9, 0xa3, 0x2d, 0x55, 0x7d, 0x81, 0x91, 0xac, 0x38, 0xad, 384 0x3a, 0xb5, 0x83, 0x91, 0xac, 0x2d, 0xd9, 0x28, 0xd8, 0x4d, 0xd9, 0x48, 0xd8, 0x6d, 0xd9, 0x68, 385 0xd8, 0x8c, 0x9d, 0xae, 0x29, 0xd9, 0x04, 0xae, 0xd8, 0x51, 0xd9, 0x04, 0xae, 0xd8, 0x79, 0xd9, 386 0x04, 0xd8, 0x81, 0xf3, 0x9d, 0xad, 0x00, 0x8d, 0xae, 0x19, 0x81, 0xad, 0xd9, 0x01, 0xd8, 0xf2, 387 0xae, 0xda, 0x26, 0xd8, 0x8e, 0x91, 0x29, 0x83, 0xa7, 0xd9, 0xad, 0xad, 0xad, 0xad, 0xf3, 0x2a, 388 0xd8, 0xd8, 0xf1, 0xb0, 0xac, 0x89, 0x91, 0x3e, 0x5e, 0x76, 0xf3, 0xac, 0x2e, 0x2e, 0xf1, 0xb1, 389 0x8c, 0x5a, 0x9c, 0xac, 0x2c, 0x28, 0x28, 0x28, 0x9c, 0xac, 0x30, 0x18, 0xa8, 0x98, 0x81, 0x28, 390 0x34, 0x3c, 0x97, 0x24, 0xa7, 0x28, 0x34, 0x3c, 0x9c, 0x24, 0xf2, 0xb0, 0x89, 0xac, 0x91, 0x2c, 391 0x4c, 0x6c, 0x8a, 0x9b, 0x2d, 0xd9, 0xd8, 0xd8, 0x51, 0xd9, 0xd8, 0xd8, 0x79, 0xd9, 0xd8, 0xd8, 392 0xf1, 0x9e, 0x88, 0xa3, 0x31, 0xda, 0xd8, 0xd8, 0x91, 0x2d, 0xd9, 0x28, 0xd8, 0x4d, 0xd9, 0x48, 393 0xd8, 0x6d, 0xd9, 0x68, 0xd8, 0xb1, 0x83, 0x93, 0x35, 0x3d, 0x80, 0x25, 0xda, 0xd8, 0xd8, 0x85, 394 0x69, 0xda, 0xd8, 0xd8, 0xb4, 0x93, 0x81, 0xa3, 0x28, 0x34, 0x3c, 0xf3, 0xab, 0x8b, 0xf8, 0xa3, 395 0x91, 0xb6, 0x09, 0xb4, 0xd9, 0xab, 0xde, 0xfa, 0xb0, 0x87, 0x9c, 0xb9, 0xa3, 0xdd, 0xf1, 0xa3, 396 0xa3, 0xa3, 0xa3, 0x95, 0xf1, 0xa3, 0xa3, 0xa3, 0x9d, 0xf1, 0xa3, 0xa3, 0xa3, 0xa3, 0xf2, 0xa3, 397 0xb4, 0x90, 0x80, 0xf2, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xb2, 0xa3, 0xa3, 0xa3, 0xa3, 398 0xa3, 0xa3, 0xb0, 0x87, 0xb5, 0x99, 0xf1, 0xa3, 0xa3, 0xa3, 0x98, 0xf1, 0xa3, 0xa3, 0xa3, 0xa3, 399 0x97, 0xa3, 0xa3, 0xa3, 0xa3, 0xf3, 0x9b, 0xa3, 0xa3, 0xdc, 0xb9, 0xa7, 0xf1, 0x26, 0x26, 0x26, 400 0xd8, 0xd8, 0xff 401 }; 402 403 static unsigned short sStartAddress = 0x0300; 404 405 406 static tKeyLabel keys[NUM_KEYS]; 407 408 static unsigned short inv_setup_dmpGetAddress( unsigned short key ) 409 { 410 static int isSorted = 0; 411 if ( !isSorted ) { 412 int kk; 413 for (kk=0; kk<NUM_KEYS; ++kk) { 414 keys[ kk ].addr = 0xffff; 415 keys[ kk ].key = kk; 416 } 417 for (kk=0; kk<NUM_LOCAL_KEYS; ++kk) { 418 keys[ dmpTConfig[kk].key ].addr = dmpTConfig[kk].addr; 419 } 420 isSorted = 1; 421 } 422 if ( key >= NUM_KEYS ) 423 return 0xffff; 424 return keys[ key ].addr; 425 } 426 427 /** 428 * @brief 429 * @return INV_SUCCESS or a non-zero error code. 430 */ 431 inv_error_t inv_setup_dmp(void) 432 433 { 434 inv_error_t result; 435 436 inv_set_get_address(inv_setup_dmpGetAddress); 437 result = inv_clock_source(MPU_CLK_SEL_PLLGYROZ); 438 if (result) { 439 LOG_RESULT_LOCATION(result); 440 return result; 441 } 442 result = inv_dl_cfg_sampling(MPU_FILTER_42HZ, 4); 443 if (result) { 444 LOG_RESULT_LOCATION(result); 445 return result; 446 } 447 result = inv_set_full_scale(2000.f); 448 if (result) { 449 LOG_RESULT_LOCATION(result); 450 return result; 451 } 452 result = inv_load_dmp(dmpMemory, DMP_CODE_SIZE, sStartAddress); 453 if (result) { 454 LOG_RESULT_LOCATION(result); 455 return result; 456 } 457 result = inv_set_external_sync(MPU_EXT_SYNC_TEMP); 458 if (result) { 459 LOG_RESULT_LOCATION(result); 460 return result; 461 } 462 463 return result; 464 } 465 /** 466 *@} 467 */ 468