![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Minor fixes
Dependencies: LSM9DS1_Library SDFileSystem mbed nrf51_rtc
Fork of LSM303DLHTest by
main.cpp@9:61fcd186ac50, 2016-07-21 (annotated)
- Committer:
- afmiee
- Date:
- Thu Jul 21 20:35:36 2016 +0000
- Revision:
- 9:61fcd186ac50
- Parent:
- 8:8f4d7f1c588f
- Child:
- 10:e7ab0493ed9f
Starts and stops automatically with the gyroscope interrupt and the inactivity interrupt. Creating the files takes too long. Will be fixed by creating temporary files and then renaming them.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
afmiee | 5:b1a689c55f59 | 1 | // Latch Inc. |
afmiee | 5:b1a689c55f59 | 2 | // Antonio F Mondragon |
afmiee | 5:b1a689c55f59 | 3 | // 20160714 |
afmiee | 5:b1a689c55f59 | 4 | // for the Adafruit 9DOF Modulke and the Sparkfun microSD card shield |
tosihisa | 0:750784997b84 | 5 | |
tosihisa | 0:750784997b84 | 6 | #include "mbed.h" |
afmiee | 6:9db9f4bfaf98 | 7 | #include "LSM9DS1.h" |
afmiee | 5:b1a689c55f59 | 8 | #include "SDFileSystem.h" |
afmiee | 5:b1a689c55f59 | 9 | #include "nrf51_rtc.h" |
afmiee | 5:b1a689c55f59 | 10 | |
afmiee | 5:b1a689c55f59 | 11 | #define M_PI 3.14158 |
afmiee | 9:61fcd186ac50 | 12 | //#define DEBUG 1 |
afmiee | 5:b1a689c55f59 | 13 | |
afmiee | 5:b1a689c55f59 | 14 | // Create objects |
afmiee | 5:b1a689c55f59 | 15 | Serial debug(USBTX,USBRX); |
afmiee | 5:b1a689c55f59 | 16 | // For Nordic |
afmiee | 6:9db9f4bfaf98 | 17 | LSM9DS1 lol(p30, p7, 0xD6, 0x3C); |
afmiee | 7:cbfdcc57f110 | 18 | I2C i2c(p30, p7); |
afmiee | 5:b1a689c55f59 | 19 | // Create the SD filesystem |
afmiee | 5:b1a689c55f59 | 20 | SDFileSystem sd(p25, p28, p29, p20, "sd"); // MOSI, MISO, SCLK, SSEL |
afmiee | 5:b1a689c55f59 | 21 | |
afmiee | 5:b1a689c55f59 | 22 | // Create a ticker to use the nRF51 RTC |
afmiee | 5:b1a689c55f59 | 23 | Ticker flipper; |
afmiee | 5:b1a689c55f59 | 24 | |
afmiee | 5:b1a689c55f59 | 25 | // Assign interrupts to switches |
afmiee | 9:61fcd186ac50 | 26 | InterruptIn int1(p12); // Start sampling |
afmiee | 9:61fcd186ac50 | 27 | InterruptIn int2(p13); // Stop sampoling |
afmiee | 5:b1a689c55f59 | 28 | |
afmiee | 5:b1a689c55f59 | 29 | // LED definitions |
afmiee | 5:b1a689c55f59 | 30 | DigitalOut led1(LED1); |
afmiee | 5:b1a689c55f59 | 31 | DigitalOut led2(LED2); |
afmiee | 9:61fcd186ac50 | 32 | DigitalOut dbg1(p16); |
afmiee | 9:61fcd186ac50 | 33 | DigitalOut dbg2(p17); |
afmiee | 5:b1a689c55f59 | 34 | |
afmiee | 5:b1a689c55f59 | 35 | // Global variables |
afmiee | 5:b1a689c55f59 | 36 | int start = 0; |
afmiee | 5:b1a689c55f59 | 37 | int stop = 0; |
afmiee | 5:b1a689c55f59 | 38 | |
tosihisa | 0:750784997b84 | 39 | |
afmiee | 5:b1a689c55f59 | 40 | // Generated when button 1 is pressed on rising edge START |
afmiee | 5:b1a689c55f59 | 41 | void start_smpl() |
afmiee | 5:b1a689c55f59 | 42 | { |
afmiee | 5:b1a689c55f59 | 43 | start = 1; |
afmiee | 5:b1a689c55f59 | 44 | stop = 0; |
afmiee | 9:61fcd186ac50 | 45 | dbg2 = 1; |
afmiee | 5:b1a689c55f59 | 46 | } |
afmiee | 5:b1a689c55f59 | 47 | |
afmiee | 5:b1a689c55f59 | 48 | // Generated when button 1 is pressed on rising edge STOP |
afmiee | 5:b1a689c55f59 | 49 | void stop_smpl() |
afmiee | 5:b1a689c55f59 | 50 | { |
afmiee | 5:b1a689c55f59 | 51 | stop = 1; |
afmiee | 5:b1a689c55f59 | 52 | start = 0; |
afmiee | 9:61fcd186ac50 | 53 | dbg2 = 0; |
afmiee | 5:b1a689c55f59 | 54 | } |
afmiee | 5:b1a689c55f59 | 55 | |
afmiee | 7:cbfdcc57f110 | 56 | void parp( int times ) |
afmiee | 7:cbfdcc57f110 | 57 | { |
afmiee | 7:cbfdcc57f110 | 58 | int i; |
afmiee | 7:cbfdcc57f110 | 59 | for( i = 0; i < times; i++) { |
afmiee | 7:cbfdcc57f110 | 60 | led1 = 0; |
afmiee | 7:cbfdcc57f110 | 61 | wait( 0.05); |
afmiee | 7:cbfdcc57f110 | 62 | led1 = 1; |
afmiee | 7:cbfdcc57f110 | 63 | wait( 0.05); |
afmiee | 7:cbfdcc57f110 | 64 | } |
afmiee | 7:cbfdcc57f110 | 65 | led2 = 1; |
afmiee | 7:cbfdcc57f110 | 66 | } |
afmiee | 7:cbfdcc57f110 | 67 | // Flipped every second |
afmiee | 5:b1a689c55f59 | 68 | void flip() |
afmiee | 5:b1a689c55f59 | 69 | { |
afmiee | 7:cbfdcc57f110 | 70 | led2 = 0; |
afmiee | 7:cbfdcc57f110 | 71 | wait(0.01); |
afmiee | 7:cbfdcc57f110 | 72 | led2 = 1; |
afmiee | 7:cbfdcc57f110 | 73 | } |
afmiee | 7:cbfdcc57f110 | 74 | |
afmiee | 7:cbfdcc57f110 | 75 | |
afmiee | 7:cbfdcc57f110 | 76 | uint8_t I2CreadByte(uint8_t address, uint8_t subAddress) |
afmiee | 7:cbfdcc57f110 | 77 | { |
afmiee | 7:cbfdcc57f110 | 78 | char data; |
afmiee | 7:cbfdcc57f110 | 79 | char temp= subAddress; |
afmiee | 7:cbfdcc57f110 | 80 | |
afmiee | 7:cbfdcc57f110 | 81 | i2c.write(address, &temp, 1); |
afmiee | 7:cbfdcc57f110 | 82 | int a = i2c.read(address, &data, 1); |
afmiee | 7:cbfdcc57f110 | 83 | return data; |
afmiee | 5:b1a689c55f59 | 84 | } |
afmiee | 5:b1a689c55f59 | 85 | |
afmiee | 8:8f4d7f1c588f | 86 | uint8_t I2CreadBytes(uint8_t address, uint8_t subAddress, uint8_t * dest, uint8_t count) |
afmiee | 8:8f4d7f1c588f | 87 | { |
afmiee | 8:8f4d7f1c588f | 88 | int i; |
afmiee | 8:8f4d7f1c588f | 89 | char temp_dest[count]; |
afmiee | 8:8f4d7f1c588f | 90 | char temp = subAddress; |
afmiee | 8:8f4d7f1c588f | 91 | i2c.write(address, &temp, 1); |
afmiee | 8:8f4d7f1c588f | 92 | i2c.read(address, temp_dest, count); |
afmiee | 8:8f4d7f1c588f | 93 | |
afmiee | 8:8f4d7f1c588f | 94 | //i2c doesn't take uint8_ts, but rather chars so do this nasty af conversion |
afmiee | 8:8f4d7f1c588f | 95 | for (i=0; i < count; i++) { |
afmiee | 8:8f4d7f1c588f | 96 | dest[i] = temp_dest[i]; |
afmiee | 8:8f4d7f1c588f | 97 | } |
afmiee | 8:8f4d7f1c588f | 98 | return count; |
afmiee | 8:8f4d7f1c588f | 99 | } |
afmiee | 8:8f4d7f1c588f | 100 | |
afmiee | 8:8f4d7f1c588f | 101 | |
afmiee | 8:8f4d7f1c588f | 102 | |
afmiee | 8:8f4d7f1c588f | 103 | void DumpAccelGyroRegs( void ) |
afmiee | 8:8f4d7f1c588f | 104 | { |
afmiee | 8:8f4d7f1c588f | 105 | char dest[ 0x34 ]; |
afmiee | 8:8f4d7f1c588f | 106 | int i; |
afmiee | 8:8f4d7f1c588f | 107 | |
afmiee | 8:8f4d7f1c588f | 108 | debug.printf("\n\r"); |
afmiee | 9:61fcd186ac50 | 109 | I2CreadBytes( 0xD6, 0x04, (uint8_t *)dest, 0x34 ); |
afmiee | 9:61fcd186ac50 | 110 | |
afmiee | 8:8f4d7f1c588f | 111 | for( i = 0; i < 0x34; i++ ) { |
afmiee | 9:61fcd186ac50 | 112 | //I2CreadByte(0xD6, i + 0x04); |
afmiee | 8:8f4d7f1c588f | 113 | switch( i + 0x04 ) { |
afmiee | 8:8f4d7f1c588f | 114 | case 0x04: |
afmiee | 8:8f4d7f1c588f | 115 | debug.printf("ACT_THS 0x04 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 116 | break; |
afmiee | 8:8f4d7f1c588f | 117 | case 0x05: |
afmiee | 8:8f4d7f1c588f | 118 | debug.printf("ACT_DUR 0x05 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 119 | break; |
afmiee | 8:8f4d7f1c588f | 120 | case 0x06: |
afmiee | 8:8f4d7f1c588f | 121 | debug.printf("INT_GEN_CFG_XL 0x06 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 122 | break; |
afmiee | 8:8f4d7f1c588f | 123 | case 0x07: |
afmiee | 8:8f4d7f1c588f | 124 | debug.printf("INT_GEN_THS_X_XL 0x07 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 125 | break; |
afmiee | 8:8f4d7f1c588f | 126 | case 0x08: |
afmiee | 8:8f4d7f1c588f | 127 | debug.printf("INT_GEN_THS_Y_XL 0x08 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 128 | break; |
afmiee | 8:8f4d7f1c588f | 129 | case 0x09: |
afmiee | 8:8f4d7f1c588f | 130 | debug.printf("INT_GEN_THS_Z_XL 0x09 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 131 | break; |
afmiee | 8:8f4d7f1c588f | 132 | case 0x0A: |
afmiee | 8:8f4d7f1c588f | 133 | debug.printf("INT_GEN_DUR_XL 0x0A %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 134 | break; |
afmiee | 8:8f4d7f1c588f | 135 | case 0x0B: |
afmiee | 8:8f4d7f1c588f | 136 | debug.printf("REFERENCE_G 0x0B %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 137 | break; |
afmiee | 8:8f4d7f1c588f | 138 | case 0x0C: |
afmiee | 8:8f4d7f1c588f | 139 | debug.printf("INT1_CTRL 0x0C %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 140 | break; |
afmiee | 8:8f4d7f1c588f | 141 | case 0x0D: |
afmiee | 8:8f4d7f1c588f | 142 | debug.printf("INT2_CTRL 0x0D %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 143 | break; |
afmiee | 8:8f4d7f1c588f | 144 | case 0x0F: |
afmiee | 8:8f4d7f1c588f | 145 | debug.printf("WHO_AM_I_XG 0x0F %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 146 | break; |
afmiee | 8:8f4d7f1c588f | 147 | case 0x10: |
afmiee | 8:8f4d7f1c588f | 148 | debug.printf("CTRL_REG1_G 0x10 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 149 | break; |
afmiee | 8:8f4d7f1c588f | 150 | case 0x11: |
afmiee | 8:8f4d7f1c588f | 151 | debug.printf("CTRL_REG2_G 0x11 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 152 | break; |
afmiee | 8:8f4d7f1c588f | 153 | case 0x12: |
afmiee | 8:8f4d7f1c588f | 154 | debug.printf("CTRL_REG3_G 0x12 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 155 | break; |
afmiee | 8:8f4d7f1c588f | 156 | case 0x13: |
afmiee | 8:8f4d7f1c588f | 157 | debug.printf("ORIENT_CFG_G 0x13 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 158 | break; |
afmiee | 8:8f4d7f1c588f | 159 | case 0x14: |
afmiee | 8:8f4d7f1c588f | 160 | debug.printf("INT_GEN_SRC_G 0x14 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 161 | break; |
afmiee | 8:8f4d7f1c588f | 162 | case 0x15: |
afmiee | 8:8f4d7f1c588f | 163 | debug.printf("OUT_TEMP_L 0x15 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 164 | break; |
afmiee | 8:8f4d7f1c588f | 165 | case 0x16: |
afmiee | 8:8f4d7f1c588f | 166 | debug.printf("OUT_TEMP_H 0x16 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 167 | break; |
afmiee | 8:8f4d7f1c588f | 168 | case 0x17: |
afmiee | 8:8f4d7f1c588f | 169 | debug.printf("STATUS_REG_0 0x17 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 170 | break; |
afmiee | 8:8f4d7f1c588f | 171 | case 0x18: |
afmiee | 8:8f4d7f1c588f | 172 | debug.printf("OUT_X_L_G 0x18 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 173 | break; |
afmiee | 8:8f4d7f1c588f | 174 | case 0x19: |
afmiee | 8:8f4d7f1c588f | 175 | debug.printf("OUT_X_H_G 0x19 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 176 | break; |
afmiee | 8:8f4d7f1c588f | 177 | case 0x1A: |
afmiee | 8:8f4d7f1c588f | 178 | debug.printf("OUT_Y_L_G 0x1A %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 179 | break; |
afmiee | 8:8f4d7f1c588f | 180 | case 0x1B: |
afmiee | 8:8f4d7f1c588f | 181 | debug.printf("OUT_Y_H_G 0x1B %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 182 | break; |
afmiee | 8:8f4d7f1c588f | 183 | case 0x1C: |
afmiee | 8:8f4d7f1c588f | 184 | debug.printf("OUT_Z_L_G 0x1C %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 185 | break; |
afmiee | 8:8f4d7f1c588f | 186 | case 0x1D: |
afmiee | 8:8f4d7f1c588f | 187 | debug.printf("OUT_Z_H_G 0x1D %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 188 | break; |
afmiee | 8:8f4d7f1c588f | 189 | case 0x1E: |
afmiee | 8:8f4d7f1c588f | 190 | debug.printf("CTRL_REG4 0x1E %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 191 | break; |
afmiee | 8:8f4d7f1c588f | 192 | case 0x1F: |
afmiee | 8:8f4d7f1c588f | 193 | debug.printf("CTRL_REG5_XL 0x1F %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 194 | break; |
afmiee | 8:8f4d7f1c588f | 195 | case 0x20: |
afmiee | 8:8f4d7f1c588f | 196 | debug.printf("CTRL_REG6_XL 0x20 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 197 | break; |
afmiee | 8:8f4d7f1c588f | 198 | case 0x21: |
afmiee | 8:8f4d7f1c588f | 199 | debug.printf("CTRL_REG7_XL 0x21 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 200 | break; |
afmiee | 8:8f4d7f1c588f | 201 | case 0x22: |
afmiee | 8:8f4d7f1c588f | 202 | debug.printf("CTRL_REG8 0x22 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 203 | break; |
afmiee | 8:8f4d7f1c588f | 204 | case 0x23: |
afmiee | 8:8f4d7f1c588f | 205 | debug.printf("CTRL_REG9 0x23 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 206 | break; |
afmiee | 8:8f4d7f1c588f | 207 | case 0x24: |
afmiee | 8:8f4d7f1c588f | 208 | debug.printf("CTRL_REG10 0x24 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 209 | break; |
afmiee | 8:8f4d7f1c588f | 210 | case 0x26: |
afmiee | 8:8f4d7f1c588f | 211 | debug.printf("INT_GEN_SRC_XL 0x26 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 212 | break; |
afmiee | 8:8f4d7f1c588f | 213 | case 0x27: |
afmiee | 8:8f4d7f1c588f | 214 | debug.printf("STATUS_REG_1 0x27 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 215 | break; |
afmiee | 8:8f4d7f1c588f | 216 | case 0x28: |
afmiee | 8:8f4d7f1c588f | 217 | debug.printf("OUT_X_L_XL 0x28 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 218 | break; |
afmiee | 8:8f4d7f1c588f | 219 | case 0x29: |
afmiee | 8:8f4d7f1c588f | 220 | debug.printf("OUT_X_H_XL 0x29 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 221 | break; |
afmiee | 8:8f4d7f1c588f | 222 | case 0x2A: |
afmiee | 8:8f4d7f1c588f | 223 | debug.printf("OUT_Y_L_XL 0x2A %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 224 | break; |
afmiee | 8:8f4d7f1c588f | 225 | case 0x2B: |
afmiee | 8:8f4d7f1c588f | 226 | debug.printf("OUT_Y_H_XL 0x2B %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 227 | break; |
afmiee | 8:8f4d7f1c588f | 228 | case 0x2C: |
afmiee | 8:8f4d7f1c588f | 229 | debug.printf("OUT_Z_L_XL 0x2C %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 230 | break; |
afmiee | 8:8f4d7f1c588f | 231 | case 0x2D: |
afmiee | 8:8f4d7f1c588f | 232 | debug.printf("OUT_Z_H_XL 0x2D %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 233 | break; |
afmiee | 8:8f4d7f1c588f | 234 | case 0x2E: |
afmiee | 8:8f4d7f1c588f | 235 | debug.printf("FIFO_CTRL 0x2E %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 236 | break; |
afmiee | 8:8f4d7f1c588f | 237 | case 0x2F: |
afmiee | 8:8f4d7f1c588f | 238 | debug.printf("FIFO_SRC 0x2F %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 239 | break; |
afmiee | 8:8f4d7f1c588f | 240 | case 0x30: |
afmiee | 8:8f4d7f1c588f | 241 | debug.printf("INT_GEN_CFG_G 0x30 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 242 | break; |
afmiee | 8:8f4d7f1c588f | 243 | case 0x31: |
afmiee | 8:8f4d7f1c588f | 244 | debug.printf("INT_GEN_THS_XH_G 0x31 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 245 | break; |
afmiee | 8:8f4d7f1c588f | 246 | case 0x32: |
afmiee | 8:8f4d7f1c588f | 247 | debug.printf("INT_GEN_THS_XL_G 0x32 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 248 | break; |
afmiee | 8:8f4d7f1c588f | 249 | case 0x33: |
afmiee | 8:8f4d7f1c588f | 250 | debug.printf("INT_GEN_THS_YH_G 0x33 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 251 | break; |
afmiee | 8:8f4d7f1c588f | 252 | case 0x34: |
afmiee | 8:8f4d7f1c588f | 253 | debug.printf("INT_GEN_THS_YL_G 0x34 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 254 | break; |
afmiee | 8:8f4d7f1c588f | 255 | case 0x35: |
afmiee | 8:8f4d7f1c588f | 256 | debug.printf("INT_GEN_THS_ZH_G 0x35 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 257 | break; |
afmiee | 8:8f4d7f1c588f | 258 | case 0x36: |
afmiee | 8:8f4d7f1c588f | 259 | debug.printf("INT_GEN_THS_ZL_G 0x36 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 260 | break; |
afmiee | 8:8f4d7f1c588f | 261 | case 0x37: |
afmiee | 8:8f4d7f1c588f | 262 | debug.printf("INT_GEN_DUR_G 0x37 %02x\n\r", dest[i]); |
afmiee | 8:8f4d7f1c588f | 263 | break; |
afmiee | 8:8f4d7f1c588f | 264 | default: |
afmiee | 8:8f4d7f1c588f | 265 | debug.printf("Register Not Valid 0x%02x\n\r"); |
afmiee | 8:8f4d7f1c588f | 266 | break; |
afmiee | 8:8f4d7f1c588f | 267 | } |
afmiee | 8:8f4d7f1c588f | 268 | } |
afmiee | 8:8f4d7f1c588f | 269 | } |
afmiee | 8:8f4d7f1c588f | 270 | |
afmiee | 9:61fcd186ac50 | 271 | //*********************************************************** |
afmiee | 9:61fcd186ac50 | 272 | // file_rename: renames a file (via copy & delete). |
afmiee | 9:61fcd186ac50 | 273 | // Moves data instead of adjusting the file name in the |
afmiee | 9:61fcd186ac50 | 274 | // file directory. Checks to insure the file was renamed. |
afmiee | 9:61fcd186ac50 | 275 | // Returns -1 = error; 0 = success |
afmiee | 9:61fcd186ac50 | 276 | //*********************************************************** |
afmiee | 9:61fcd186ac50 | 277 | int file_rename(const char *oldfname, const char *newfname) { |
afmiee | 9:61fcd186ac50 | 278 | int retval = 0; |
afmiee | 9:61fcd186ac50 | 279 | int ch; |
afmiee | 9:61fcd186ac50 | 280 | |
afmiee | 9:61fcd186ac50 | 281 | FILE *fpold = fopen(oldfname, "r"); // src file |
afmiee | 9:61fcd186ac50 | 282 | FILE *fpnew = fopen(newfname, "w"); // dest file |
afmiee | 9:61fcd186ac50 | 283 | |
afmiee | 9:61fcd186ac50 | 284 | while (1) { // Copy src to dest |
afmiee | 9:61fcd186ac50 | 285 | ch = fgetc(fpold); // until src EOF read. |
afmiee | 9:61fcd186ac50 | 286 | if (ch == EOF) break; |
afmiee | 9:61fcd186ac50 | 287 | fputc(ch, fpnew); |
afmiee | 9:61fcd186ac50 | 288 | } |
afmiee | 9:61fcd186ac50 | 289 | |
afmiee | 9:61fcd186ac50 | 290 | fclose(fpnew); |
afmiee | 9:61fcd186ac50 | 291 | fclose(fpold); |
afmiee | 9:61fcd186ac50 | 292 | |
afmiee | 9:61fcd186ac50 | 293 | fpnew = fopen(newfname, "r"); // Reopen dest to insure |
afmiee | 9:61fcd186ac50 | 294 | if(fpnew == NULL) { // that it was created. |
afmiee | 9:61fcd186ac50 | 295 | retval = (-1); // Return Error. |
afmiee | 9:61fcd186ac50 | 296 | } |
afmiee | 9:61fcd186ac50 | 297 | else { |
afmiee | 9:61fcd186ac50 | 298 | fclose(fpnew); |
afmiee | 9:61fcd186ac50 | 299 | remove(oldfname); // Remove original file. |
afmiee | 9:61fcd186ac50 | 300 | retval = (0); // Return Success. |
afmiee | 9:61fcd186ac50 | 301 | } |
afmiee | 9:61fcd186ac50 | 302 | return (retval); |
afmiee | 9:61fcd186ac50 | 303 | } |
afmiee | 9:61fcd186ac50 | 304 | |
afmiee | 9:61fcd186ac50 | 305 | //*********************************************************** |
afmiee | 9:61fcd186ac50 | 306 | // file_copy: Copies a file |
afmiee | 9:61fcd186ac50 | 307 | // Checks to insure destination file was created. |
afmiee | 9:61fcd186ac50 | 308 | // Returns -1 = error; 0 = success |
afmiee | 9:61fcd186ac50 | 309 | //*********************************************************** |
afmiee | 9:61fcd186ac50 | 310 | int file_copy (const char *src, const char *dst) { |
afmiee | 9:61fcd186ac50 | 311 | int retval = 0; |
afmiee | 9:61fcd186ac50 | 312 | int ch; |
afmiee | 9:61fcd186ac50 | 313 | |
afmiee | 9:61fcd186ac50 | 314 | FILE *fpsrc = fopen(src, "r"); // src file |
afmiee | 9:61fcd186ac50 | 315 | FILE *fpdst = fopen(dst, "w"); // dest file |
afmiee | 9:61fcd186ac50 | 316 | |
afmiee | 9:61fcd186ac50 | 317 | while (1) { // Copy src to dest |
afmiee | 9:61fcd186ac50 | 318 | ch = fgetc(fpsrc); // until src EOF read. |
afmiee | 9:61fcd186ac50 | 319 | if (ch == EOF) break; |
afmiee | 9:61fcd186ac50 | 320 | fputc(ch, fpdst); |
afmiee | 9:61fcd186ac50 | 321 | } |
afmiee | 9:61fcd186ac50 | 322 | fclose(fpsrc); |
afmiee | 9:61fcd186ac50 | 323 | fclose(fpdst); |
afmiee | 9:61fcd186ac50 | 324 | |
afmiee | 9:61fcd186ac50 | 325 | fpdst = fopen(dst, "r"); // Reopen dest to insure |
afmiee | 9:61fcd186ac50 | 326 | if(fpdst == NULL) { // that it was created. |
afmiee | 9:61fcd186ac50 | 327 | retval = (-1); // Return error. |
afmiee | 9:61fcd186ac50 | 328 | } |
afmiee | 9:61fcd186ac50 | 329 | else { |
afmiee | 9:61fcd186ac50 | 330 | fclose(fpdst); |
afmiee | 9:61fcd186ac50 | 331 | retval = (0); // Return success. |
afmiee | 9:61fcd186ac50 | 332 | } |
afmiee | 9:61fcd186ac50 | 333 | return (retval); |
afmiee | 9:61fcd186ac50 | 334 | } |
afmiee | 9:61fcd186ac50 | 335 | |
afmiee | 8:8f4d7f1c588f | 336 | |
afmiee | 5:b1a689c55f59 | 337 | int main() |
afmiee | 5:b1a689c55f59 | 338 | { |
afmiee | 5:b1a689c55f59 | 339 | led1= 1; |
afmiee | 5:b1a689c55f59 | 340 | char filename[256]; |
afmiee | 5:b1a689c55f59 | 341 | char secs_str[256]; |
afmiee | 5:b1a689c55f59 | 342 | |
afmiee | 5:b1a689c55f59 | 343 | struct tm t; |
afmiee | 5:b1a689c55f59 | 344 | time_t seconds; |
tosihisa | 0:750784997b84 | 345 | |
afmiee | 8:8f4d7f1c588f | 346 | FILE *fpA; |
afmiee | 8:8f4d7f1c588f | 347 | FILE *fpG; |
afmiee | 8:8f4d7f1c588f | 348 | FILE *fpM; |
afmiee | 9:61fcd186ac50 | 349 | FILE *test; |
afmiee | 9:61fcd186ac50 | 350 | // debug pins |
afmiee | 9:61fcd186ac50 | 351 | dbg1 = 0; |
afmiee | 9:61fcd186ac50 | 352 | dbg2 = 0; |
afmiee | 6:9db9f4bfaf98 | 353 | |
afmiee | 5:b1a689c55f59 | 354 | // Attach functions to interrupts |
afmiee | 5:b1a689c55f59 | 355 | flipper.attach(&flip, 1.0); // the address of the function to be attached (flip) and the interval (2 seconds) |
afmiee | 6:9db9f4bfaf98 | 356 | |
afmiee | 5:b1a689c55f59 | 357 | // Enable serial port |
afmiee | 5:b1a689c55f59 | 358 | debug.format(8,Serial::None,1); |
afmiee | 5:b1a689c55f59 | 359 | debug.baud(115200); |
afmiee | 9:61fcd186ac50 | 360 | #ifdef DEBUG |
afmiee | 9:61fcd186ac50 | 361 | debug.printf("LSM9DS1 Test\x0d\x0a"); |
afmiee | 9:61fcd186ac50 | 362 | #endif |
afmiee | 5:b1a689c55f59 | 363 | |
afmiee | 6:9db9f4bfaf98 | 364 | // Initialize 9DOF |
afmiee | 7:cbfdcc57f110 | 365 | //lol.begin(); |
afmiee | 6:9db9f4bfaf98 | 366 | if (!lol.begin()) { |
afmiee | 6:9db9f4bfaf98 | 367 | debug.printf("Failed to communicate with LSM9DS1.\n"); |
afmiee | 9:61fcd186ac50 | 368 | wait(0.5); |
afmiee | 9:61fcd186ac50 | 369 | while(1) { |
afmiee | 9:61fcd186ac50 | 370 | led1 = !led1; |
afmiee | 9:61fcd186ac50 | 371 | wait(0.5); |
afmiee | 9:61fcd186ac50 | 372 | } |
afmiee | 9:61fcd186ac50 | 373 | } else { |
afmiee | 9:61fcd186ac50 | 374 | debug.printf("Communication with the LSM9DS1 successfully\n\r", filename); |
afmiee | 6:9db9f4bfaf98 | 375 | } |
afmiee | 9:61fcd186ac50 | 376 | |
afmiee | 6:9db9f4bfaf98 | 377 | lol.calibrate(); |
afmiee | 6:9db9f4bfaf98 | 378 | |
afmiee | 9:61fcd186ac50 | 379 | lol.configInt(XG_INT1, INT1_IG_G, INT_ACTIVE_LOW, INT_PUSH_PULL); //INT1_CTRL (0x0C) + CTRL_REG8 (0x22) |
afmiee | 9:61fcd186ac50 | 380 | lol.configInt(XG_INT2, INT2_INACT, INT_ACTIVE_LOW, INT_PUSH_PULL); //INT2_CTRL (0x0D) + CTRL_REG8 (0x22) |
afmiee | 7:cbfdcc57f110 | 381 | |
afmiee | 9:61fcd186ac50 | 382 | lol.configAccelInt(ZHIE_XL|YHIE_XL|XHIE_XL, false); // INT_GEN_CFG_XL (06h) |
afmiee | 7:cbfdcc57f110 | 383 | lol.configAccelThs((uint8_t)0x25, X_AXIS, (uint8_t)0x00, false); // INT_GEN_THS_X_XL (07h) |
afmiee | 7:cbfdcc57f110 | 384 | lol.configAccelThs((uint8_t)0x25, Y_AXIS, (uint8_t)0x00, false); // INT_GEN_THS_Y_XL (08h) |
afmiee | 7:cbfdcc57f110 | 385 | lol.configAccelThs((uint8_t)0x25, Z_AXIS, (uint8_t)0x00, false); // INT_GEN_THS_Z_XL (09h) |
afmiee | 7:cbfdcc57f110 | 386 | |
afmiee | 8:8f4d7f1c588f | 387 | lol.configGyroInt(ZHIE_G|YHIE_G|XHIE_G, false, false); // INT_GEN_CFG_G (30h) |
afmiee | 8:8f4d7f1c588f | 388 | lol.configGyroThs((int16_t )0x300, X_AXIS, (uint8_t) 0x02, false); // INT_GEN_THS_X_G (31h - 32h) |
afmiee | 8:8f4d7f1c588f | 389 | lol.configGyroThs((int16_t )0x300, Y_AXIS, (uint8_t) 0x02, false); // INT_GEN_THS_Y_G (33h - 34h) |
afmiee | 8:8f4d7f1c588f | 390 | lol.configGyroThs((int16_t )0x300, Z_AXIS, (uint8_t) 0x02, false); // INT_GEN_THS_Z_G (35h - 36h) |
afmiee | 8:8f4d7f1c588f | 391 | |
afmiee | 9:61fcd186ac50 | 392 | lol.configInactivity(0x0F, 0x20, true); |
afmiee | 8:8f4d7f1c588f | 393 | |
afmiee | 9:61fcd186ac50 | 394 | #ifdef DEBUG |
afmiee | 7:cbfdcc57f110 | 395 | debug.printf( "\n\r"); |
afmiee | 7:cbfdcc57f110 | 396 | debug.printf( "GyroIntSrc (14h) %02x\n\r", lol.getGyroIntSrc()); // INT_GEN_SRC_G (14h) |
afmiee | 7:cbfdcc57f110 | 397 | debug.printf( "AccelIntSrc(26h) %02x\n\r", lol.getAccelIntSrc()); // INT_GEN_SRC_XL (26h) |
afmiee | 7:cbfdcc57f110 | 398 | debug.printf( "MagIntSrc (31h) %02x\n\r", lol.getMagIntSrc()); // INT_SRC_M (31h) |
afmiee | 7:cbfdcc57f110 | 399 | debug.printf( "Inactivity (17h) %02x\n\r", lol.getInactivity()); // STATUS_REG (17h) |
afmiee | 7:cbfdcc57f110 | 400 | |
afmiee | 7:cbfdcc57f110 | 401 | debug.printf( "INT1_CTRL (0Ch) %02x\n\r", I2CreadByte(0xD6, 0x0C)); |
afmiee | 8:8f4d7f1c588f | 402 | debug.printf( "INT2_CTRL (0Dh) %02x\n\r", I2CreadByte(0xD6, 0x0D)); |
afmiee | 7:cbfdcc57f110 | 403 | debug.printf( "CTRL_REG8 (22h) %02x\n\r", I2CreadByte(0xD6, 0x22)); |
afmiee | 8:8f4d7f1c588f | 404 | debug.printf( "STATUS_REG (27h) %02x\n\r", I2CreadByte(0xD6, 0x27)); |
afmiee | 7:cbfdcc57f110 | 405 | debug.printf( "\n\r"); |
afmiee | 7:cbfdcc57f110 | 406 | debug.printf( "INT_GEN_CFG_XL (06h) %02x\n\r", I2CreadByte(0xD6, 0x06)); |
afmiee | 7:cbfdcc57f110 | 407 | debug.printf( "INT_GEN_SRC_XL (26h) %02x\n\r", I2CreadByte(0xD6, 0x26)); |
afmiee | 7:cbfdcc57f110 | 408 | debug.printf( "INT_GEN_THS_X_XL (07h) %02x\n\r", I2CreadByte(0xD6, 0x07)); |
afmiee | 7:cbfdcc57f110 | 409 | debug.printf( "INT_GEN_THS_Y_XL (08h) %02x\n\r", I2CreadByte(0xD6, 0x08)); |
afmiee | 7:cbfdcc57f110 | 410 | debug.printf( "INT_GEN_THS_Z_XL (09h) %02x\n\r", I2CreadByte(0xD6, 0x09)); |
afmiee | 7:cbfdcc57f110 | 411 | debug.printf( "INT_GEN_DUR_XL (0ah) %02x\n\r", I2CreadByte(0xD6, 0x0a)); |
afmiee | 7:cbfdcc57f110 | 412 | debug.printf( "\n\r"); |
afmiee | 7:cbfdcc57f110 | 413 | debug.printf( "INT_GEN_CFG_G (30h) %02x\n\r", I2CreadByte(0xD6, 0x30)); |
afmiee | 7:cbfdcc57f110 | 414 | debug.printf( "INT_GEN_SRC_G (14h) %02x\n\r", I2CreadByte(0xD6, 0x14)); |
afmiee | 7:cbfdcc57f110 | 415 | debug.printf( "INT_GEN_THS_XH_G (31h) %02x\n\r", I2CreadByte(0xD6, 0x31)); |
afmiee | 7:cbfdcc57f110 | 416 | debug.printf( "INT_GEN_THS_XL_G (32h) %02x\n\r", I2CreadByte(0xD6, 0x32)); |
afmiee | 7:cbfdcc57f110 | 417 | debug.printf( "INT_GEN_THS_YH_G (33h) %02x\n\r", I2CreadByte(0xD6, 0x33)); |
afmiee | 7:cbfdcc57f110 | 418 | debug.printf( "INT_GEN_THS_YL_G (34h) %02x\n\r", I2CreadByte(0xD6, 0x34)); |
afmiee | 7:cbfdcc57f110 | 419 | debug.printf( "INT_GEN_THS_ZH_G (35h) %02x\n\r", I2CreadByte(0xD6, 0x35)); |
afmiee | 7:cbfdcc57f110 | 420 | debug.printf( "INT_GEN_THS_ZL_G (36h) %02x\n\r", I2CreadByte(0xD6, 0x36)); |
afmiee | 7:cbfdcc57f110 | 421 | debug.printf( "INT_GEN_DUR_G (37h) %02x\n\r", I2CreadByte(0xD6, 0x37)); |
afmiee | 7:cbfdcc57f110 | 422 | |
afmiee | 9:61fcd186ac50 | 423 | // Dump all registers |
afmiee | 8:8f4d7f1c588f | 424 | DumpAccelGyroRegs(); |
afmiee | 6:9db9f4bfaf98 | 425 | // // Initialize current time if needed |
afmiee | 5:b1a689c55f59 | 426 | // printf("Enter current date and time:\n"); |
afmiee | 5:b1a689c55f59 | 427 | // printf("YYYY MM DD HH MM SS[enter]\n"); |
afmiee | 5:b1a689c55f59 | 428 | // scanf("%d %d %d %d %d %d", &t.tm_year, &t.tm_mon, &t.tm_mday |
afmiee | 5:b1a689c55f59 | 429 | // , &t.tm_hour, &t.tm_min, &t.tm_sec); |
afmiee | 9:61fcd186ac50 | 430 | #endif |
afmiee | 9:61fcd186ac50 | 431 | // adjust for tm structure required values |
afmiee | 5:b1a689c55f59 | 432 | t.tm_year = t.tm_year - 1900; |
afmiee | 5:b1a689c55f59 | 433 | t.tm_mon = t.tm_mon - 1; |
afmiee | 5:b1a689c55f59 | 434 | |
afmiee | 9:61fcd186ac50 | 435 | // set the time |
afmiee | 5:b1a689c55f59 | 436 | rtc.set_time(mktime(&t)); |
afmiee | 9:61fcd186ac50 | 437 | int1.fall(&start_smpl); |
afmiee | 9:61fcd186ac50 | 438 | int2.fall(&stop_smpl); |
afmiee | 5:b1a689c55f59 | 439 | |
afmiee | 5:b1a689c55f59 | 440 | while(1) { |
afmiee | 9:61fcd186ac50 | 441 | //debug.printf("Press Button 1 to Start sampling\n\r"); |
afmiee | 9:61fcd186ac50 | 442 | //debug.printf("Press Button 2 to Stop sampling\n\r"); |
afmiee | 5:b1a689c55f59 | 443 | // Check for button 1 pressed |
afmiee | 5:b1a689c55f59 | 444 | while(!start) { |
afmiee | 5:b1a689c55f59 | 445 | led1 = 1; |
afmiee | 5:b1a689c55f59 | 446 | } |
afmiee | 9:61fcd186ac50 | 447 | dbg2 = 0; |
afmiee | 5:b1a689c55f59 | 448 | // Start sampling |
afmiee | 7:cbfdcc57f110 | 449 | //led1 = 0; |
afmiee | 7:cbfdcc57f110 | 450 | parp(5); |
afmiee | 9:61fcd186ac50 | 451 | //#ifdef DEBUG |
afmiee | 5:b1a689c55f59 | 452 | debug.printf("Started sampling\n\r"); |
afmiee | 5:b1a689c55f59 | 453 | // Get the time and create a file with the number of seconds in hex appended |
afmiee | 9:61fcd186ac50 | 454 | //#endif |
afmiee | 6:9db9f4bfaf98 | 455 | seconds = rtc.time(); |
afmiee | 9:61fcd186ac50 | 456 | dbg1 = 1; |
afmiee | 5:b1a689c55f59 | 457 | sprintf(secs_str, "%s", ctime(&seconds)); |
afmiee | 9:61fcd186ac50 | 458 | printf("\n\rStarted at: %s\n\r\n\r", secs_str ); |
afmiee | 8:8f4d7f1c588f | 459 | sprintf(filename, "/sd/latch9DOFA_%08x.csv",seconds); |
afmiee | 9:61fcd186ac50 | 460 | |
afmiee | 9:61fcd186ac50 | 461 | test = fopen("/sd/test_original.csv", "w"); |
afmiee | 9:61fcd186ac50 | 462 | // Verify that file can be created |
afmiee | 9:61fcd186ac50 | 463 | if ( test == NULL ) { |
afmiee | 9:61fcd186ac50 | 464 | debug.printf("Cannot create file test_original.csv\n\r"); |
afmiee | 9:61fcd186ac50 | 465 | wait(0.5); |
afmiee | 9:61fcd186ac50 | 466 | while(1) { |
afmiee | 9:61fcd186ac50 | 467 | led1 = !led1; |
afmiee | 9:61fcd186ac50 | 468 | wait(0.5); |
afmiee | 9:61fcd186ac50 | 469 | } |
afmiee | 9:61fcd186ac50 | 470 | } else |
afmiee | 9:61fcd186ac50 | 471 | debug.printf("File test_original.csv created successfully\n\r", filename); |
afmiee | 9:61fcd186ac50 | 472 | |
afmiee | 9:61fcd186ac50 | 473 | |
afmiee | 8:8f4d7f1c588f | 474 | fpA = fopen(filename, "w"); |
afmiee | 5:b1a689c55f59 | 475 | // Verify that file can be created |
afmiee | 8:8f4d7f1c588f | 476 | if ( fpA == NULL ) { |
afmiee | 8:8f4d7f1c588f | 477 | debug.printf("Cannot create file %s\n\r", filename); |
afmiee | 8:8f4d7f1c588f | 478 | wait(0.5); |
afmiee | 8:8f4d7f1c588f | 479 | while(1) { |
afmiee | 8:8f4d7f1c588f | 480 | led1 = !led1; |
afmiee | 8:8f4d7f1c588f | 481 | wait(0.5); |
afmiee | 8:8f4d7f1c588f | 482 | } |
afmiee | 8:8f4d7f1c588f | 483 | } else |
afmiee | 8:8f4d7f1c588f | 484 | debug.printf("File %s created successfully\n\r", filename); |
afmiee | 8:8f4d7f1c588f | 485 | |
afmiee | 8:8f4d7f1c588f | 486 | sprintf(filename, "/sd/latch9DOFG_%08x.csv",seconds); |
afmiee | 8:8f4d7f1c588f | 487 | fpG = fopen(filename, "w"); |
afmiee | 8:8f4d7f1c588f | 488 | // Verify that file can be created |
afmiee | 8:8f4d7f1c588f | 489 | if ( fpG == NULL ) { |
afmiee | 8:8f4d7f1c588f | 490 | debug.printf("Cannot create file %s\n\r", filename); |
afmiee | 8:8f4d7f1c588f | 491 | wait(0.5); |
afmiee | 8:8f4d7f1c588f | 492 | while(1) { |
afmiee | 8:8f4d7f1c588f | 493 | led1 = !led1; |
afmiee | 8:8f4d7f1c588f | 494 | wait(0.5); |
afmiee | 8:8f4d7f1c588f | 495 | } |
afmiee | 8:8f4d7f1c588f | 496 | } else |
afmiee | 8:8f4d7f1c588f | 497 | debug.printf("File %s created successfully\n\r", filename); |
afmiee | 8:8f4d7f1c588f | 498 | |
afmiee | 8:8f4d7f1c588f | 499 | sprintf(filename, "/sd/latch9DOFM_%08x.csv",seconds); |
afmiee | 8:8f4d7f1c588f | 500 | fpM = fopen(filename, "w"); |
afmiee | 8:8f4d7f1c588f | 501 | // Verify that file can be created |
afmiee | 8:8f4d7f1c588f | 502 | if ( fpM == NULL ) { |
afmiee | 5:b1a689c55f59 | 503 | debug.printf("Cannot create file %s\n\r", filename); |
afmiee | 5:b1a689c55f59 | 504 | wait(0.5); |
afmiee | 5:b1a689c55f59 | 505 | while(1) { |
afmiee | 5:b1a689c55f59 | 506 | led1 = !led1; |
afmiee | 5:b1a689c55f59 | 507 | wait(0.5); |
afmiee | 5:b1a689c55f59 | 508 | } |
afmiee | 5:b1a689c55f59 | 509 | } else |
afmiee | 5:b1a689c55f59 | 510 | debug.printf("File %s created successfully\n\r", filename); |
afmiee | 9:61fcd186ac50 | 511 | dbg1 = 0; |
afmiee | 6:9db9f4bfaf98 | 512 | // Sample until button 2 is pressed |
afmiee | 5:b1a689c55f59 | 513 | while(!stop) { |
afmiee | 7:cbfdcc57f110 | 514 | //led1 = 0; |
afmiee | 8:8f4d7f1c588f | 515 | //lol.getAccelIntSrc(); // INT_GEN_SRC_XL (26h) |
afmiee | 8:8f4d7f1c588f | 516 | //I2CreadByte(0xD6, 0x27); |
afmiee | 8:8f4d7f1c588f | 517 | if (lol.accelAvailable()) { |
afmiee | 8:8f4d7f1c588f | 518 | lol.readAccel(); |
afmiee | 9:61fcd186ac50 | 519 | #ifdef DEBUG |
afmiee | 8:8f4d7f1c588f | 520 | debug.printf("ACC %d, %d, %d\n\r", lol.ax, lol.ay, lol.az); |
afmiee | 9:61fcd186ac50 | 521 | #endif |
afmiee | 8:8f4d7f1c588f | 522 | fprintf(fpA, "%d, %d, %d\n\r", lol.ax, lol.ay, lol.az); |
afmiee | 8:8f4d7f1c588f | 523 | } |
afmiee | 8:8f4d7f1c588f | 524 | //lol.getMagIntSrc(); // INT_SRC_M (31h) |
afmiee | 8:8f4d7f1c588f | 525 | //I2CreadByte(0xD6, 0x27); |
afmiee | 8:8f4d7f1c588f | 526 | if ( lol.magAvailable(X_AXIS) && lol.magAvailable(X_AXIS) && lol.magAvailable(X_AXIS)) { |
afmiee | 8:8f4d7f1c588f | 527 | lol.readMag(); |
afmiee | 9:61fcd186ac50 | 528 | #ifdef DEBUG |
afmiee | 8:8f4d7f1c588f | 529 | debug.printf("MAG %d, %d, %d\n\r", lol.mx, lol.my, lol.mz); |
afmiee | 9:61fcd186ac50 | 530 | #endif |
afmiee | 8:8f4d7f1c588f | 531 | fprintf(fpM, "%d, %d, %d\n\r", lol.mx, lol.my, lol.mz); |
afmiee | 8:8f4d7f1c588f | 532 | } |
afmiee | 8:8f4d7f1c588f | 533 | //lol.getGyroIntSrc(); // INT_GEN_SRC_G (14h) |
afmiee | 8:8f4d7f1c588f | 534 | if ( lol.gyroAvailable()) { |
afmiee | 8:8f4d7f1c588f | 535 | lol.readGyro(); |
afmiee | 9:61fcd186ac50 | 536 | #ifdef DEBUG |
afmiee | 8:8f4d7f1c588f | 537 | debug.printf("GYR %d, %d, %d\n\r", lol.gx, lol.gy, lol.gz); |
afmiee | 9:61fcd186ac50 | 538 | #endif |
afmiee | 8:8f4d7f1c588f | 539 | fprintf(fpG, "%d, %d, %d\n\r", lol.gx, lol.gy, lol.gz); |
afmiee | 8:8f4d7f1c588f | 540 | } |
afmiee | 8:8f4d7f1c588f | 541 | //wait(0.1); |
afmiee | 5:b1a689c55f59 | 542 | } |
afmiee | 5:b1a689c55f59 | 543 | // Stop Sampling and close file |
afmiee | 7:cbfdcc57f110 | 544 | parp(10); |
afmiee | 9:61fcd186ac50 | 545 | //#ifdef DEBUG |
afmiee | 5:b1a689c55f59 | 546 | debug.printf("Stopped sampling\n\r"); |
afmiee | 9:61fcd186ac50 | 547 | //#endif |
afmiee | 8:8f4d7f1c588f | 548 | fclose(fpA); |
afmiee | 8:8f4d7f1c588f | 549 | fclose(fpM); |
afmiee | 8:8f4d7f1c588f | 550 | fclose(fpG); |
afmiee | 9:61fcd186ac50 | 551 | fclose(test); |
afmiee | 9:61fcd186ac50 | 552 | |
afmiee | 9:61fcd186ac50 | 553 | int ret; |
afmiee | 9:61fcd186ac50 | 554 | |
afmiee | 9:61fcd186ac50 | 555 | ret = file_rename("/sd/test_original.csv","/sd/test_renamed.csv"); |
afmiee | 9:61fcd186ac50 | 556 | |
afmiee | 9:61fcd186ac50 | 557 | if(ret == 0) { |
afmiee | 9:61fcd186ac50 | 558 | debug.printf("File renamed successfully"); |
afmiee | 9:61fcd186ac50 | 559 | } else { |
afmiee | 9:61fcd186ac50 | 560 | debug.printf("Error: unable to rename the file"); |
afmiee | 9:61fcd186ac50 | 561 | } |
afmiee | 6:9db9f4bfaf98 | 562 | } |
tosihisa | 4:3c677edffb13 | 563 | } |
afmiee | 7:cbfdcc57f110 | 564 | |
afmiee | 7:cbfdcc57f110 | 565 | |
afmiee | 7:cbfdcc57f110 | 566 |