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.
Dependencies: BLE_API LIS3DH mbed nRF51822
Fork of BLE_Sensor by
main.cpp@12:ca9be012700a, 2018-06-09 (annotated)
- Committer:
- electronichamsters
- Date:
- Sat Jun 09 09:12:50 2018 +0000
- Revision:
- 12:ca9be012700a
- Parent:
- 11:4f925834167d
debugging I2C
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| electronichamsters | 12:ca9be012700a | 1 | //consumes 16uA at ble_wait_for_event() |
| electronichamsters | 8:46c5e0bfab05 | 2 | |
| electronichamsters | 8:46c5e0bfab05 | 3 | |
| electronichamsters | 12:ca9be012700a | 4 | #include "mbed.h" |
| electronichamsters | 12:ca9be012700a | 5 | #include "LIS3DH.h" //https://developer.mbed.org/users/kenjiArai/code/LIS3DH/ |
| electronichamsters | 12:ca9be012700a | 6 | #include "ble/BLE.h" |
| electronichamsters | 8:46c5e0bfab05 | 7 | |
| electronichamsters | 12:ca9be012700a | 8 | #define MyDebugEnb 1 |
| electronichamsters | 12:ca9be012700a | 9 | #define sensorEnb 1 //get readings |
| electronichamsters | 8:46c5e0bfab05 | 10 | |
| electronichamsters | 8:46c5e0bfab05 | 11 | |
| electronichamsters | 12:ca9be012700a | 12 | #if MyDebugEnb |
| electronichamsters | 12:ca9be012700a | 13 | Serial pc(p9, p11); //Tx, Rx |
| electronichamsters | 12:ca9be012700a | 14 | #endif |
| electronichamsters | 12:ca9be012700a | 15 | |
| electronichamsters | 12:ca9be012700a | 16 | //LIS3DH(PinName p_sda, PinName p_scl, uint8_t addr); |
| sunsmile2015 | 0:3dc6e424dba0 | 17 | |
| electronichamsters | 12:ca9be012700a | 18 | //I2C i2c(p6,p7); |
| electronichamsters | 12:ca9be012700a | 19 | //LIS3DH data(i2c, 0x19); |
| electronichamsters | 12:ca9be012700a | 20 | #if sensorEnb |
| electronichamsters | 12:ca9be012700a | 21 | //LIS3DH data(p6, p7, (0x19 << 1)); //for purple board, sda=p6, scl=p7 |
| electronichamsters | 12:ca9be012700a | 22 | LIS3DH data(p6, p7, LIS3DH_V_CHIP_ADDR); |
| electronichamsters | 8:46c5e0bfab05 | 23 | |
| electronichamsters | 12:ca9be012700a | 24 | //0001 1001 ---> 0011 0010 |
| electronichamsters | 12:ca9be012700a | 25 | #endif |
| electronichamsters | 12:ca9be012700a | 26 | float dt_usr[3]; |
| electronichamsters | 12:ca9be012700a | 27 | float x,y,z; |
| electronichamsters | 12:ca9be012700a | 28 | InterruptIn button1(p1); //nRF51822 P0.1 |
| electronichamsters | 12:ca9be012700a | 29 | InterruptIn button2(p16); //nRF51822 P0.1 |
| electronichamsters | 12:ca9be012700a | 30 | //InterruptIn button1(p0); |
| electronichamsters | 12:ca9be012700a | 31 | bool flag_read_acc; |
| electronichamsters | 8:46c5e0bfab05 | 32 | |
| electronichamsters | 12:ca9be012700a | 33 | uint8_t reset_addr = 0x31; //LIS3DH_INT1_SOURCE |
| electronichamsters | 8:46c5e0bfab05 | 34 | |
| electronichamsters | 8:46c5e0bfab05 | 35 | |
| electronichamsters | 12:ca9be012700a | 36 | //ISR for I/O interrupt |
| electronichamsters | 12:ca9be012700a | 37 | void button1_int(void) |
| electronichamsters | 12:ca9be012700a | 38 | { |
| electronichamsters | 12:ca9be012700a | 39 | //#if MyDebugEnb |
| electronichamsters | 8:46c5e0bfab05 | 40 | |
| electronichamsters | 12:ca9be012700a | 41 | //NRF_SPI0->ENABLE = 1; |
| electronichamsters | 12:ca9be012700a | 42 | //wait_ms(50); |
| electronichamsters | 12:ca9be012700a | 43 | flag_read_acc=1; |
| electronichamsters | 12:ca9be012700a | 44 | #if MyDebugEnb |
| electronichamsters | 12:ca9be012700a | 45 | pc.printf("...interrupt released... \n\r"); |
| electronichamsters | 12:ca9be012700a | 46 | #endif |
| electronichamsters | 12:ca9be012700a | 47 | uint8_t retruneddata = data.read_reg(reset_addr); |
| electronichamsters | 12:ca9be012700a | 48 | pc.printf("%x", retruneddata); |
| electronichamsters | 12:ca9be012700a | 49 | pc.printf(" returned \n\r"); |
| electronichamsters | 8:46c5e0bfab05 | 50 | |
| electronichamsters | 8:46c5e0bfab05 | 51 | } |
| electronichamsters | 12:ca9be012700a | 52 | //ISR for I/O interrupt |
| electronichamsters | 12:ca9be012700a | 53 | void button2_int(void) |
| electronichamsters | 12:ca9be012700a | 54 | { |
| electronichamsters | 12:ca9be012700a | 55 | //#if MyDebugEnb |
| rgrover1 | 5:f4d74a8cad43 | 56 | |
| electronichamsters | 12:ca9be012700a | 57 | //NRF_SPI0->ENABLE = 1; |
| electronichamsters | 12:ca9be012700a | 58 | //wait_ms(50); |
| electronichamsters | 12:ca9be012700a | 59 | flag_read_acc=1; |
| electronichamsters | 12:ca9be012700a | 60 | #if MyDebugEnb |
| electronichamsters | 12:ca9be012700a | 61 | pc.printf("...interrupt from 2... \n\r"); |
| electronichamsters | 12:ca9be012700a | 62 | #endif |
| electronichamsters | 8:46c5e0bfab05 | 63 | |
| electronichamsters | 8:46c5e0bfab05 | 64 | |
| electronichamsters | 12:ca9be012700a | 65 | uint8_t retruneddata = data.read_reg(reset_addr); |
| electronichamsters | 12:ca9be012700a | 66 | pc.printf("%x", retruneddata); |
| electronichamsters | 12:ca9be012700a | 67 | pc.printf(" returned \n\r"); |
| electronichamsters | 8:46c5e0bfab05 | 68 | |
| sunsmile2015 | 0:3dc6e424dba0 | 69 | } |
| sunsmile2015 | 0:3dc6e424dba0 | 70 | |
| electronichamsters | 8:46c5e0bfab05 | 71 | |
| electronichamsters | 8:46c5e0bfab05 | 72 | |
| electronichamsters | 12:ca9be012700a | 73 | int main () |
| electronichamsters | 8:46c5e0bfab05 | 74 | { |
| electronichamsters | 10:79e8f92ef156 | 75 | #if MyDebugEnb |
| electronichamsters | 12:ca9be012700a | 76 | pc.baud(9600); |
| electronichamsters | 12:ca9be012700a | 77 | printf("...started... \n\r"); |
| electronichamsters | 10:79e8f92ef156 | 78 | #endif |
| sunsmile2015 | 0:3dc6e424dba0 | 79 | |
| andresag | 7:0a8bbb6dea16 | 80 | BLE &ble = BLE::Instance(); |
| electronichamsters | 12:ca9be012700a | 81 | ble.init(); // normally you'd want to pass a callback for when init complete |
| electronichamsters | 8:46c5e0bfab05 | 82 | |
| electronichamsters | 12:ca9be012700a | 83 | uint8_t setsuccess = data.setAct(LIS3DH_V_CHIP_ADDR); |
| electronichamsters | 12:ca9be012700a | 84 | #if MyDebugEnb |
| electronichamsters | 12:ca9be012700a | 85 | pc.printf("%x", setsuccess); |
| electronichamsters | 12:ca9be012700a | 86 | pc.printf(" set ACT status \n\r"); |
| electronichamsters | 12:ca9be012700a | 87 | #endif |
| electronichamsters | 12:ca9be012700a | 88 | button1.mode(PullDown); |
| electronichamsters | 12:ca9be012700a | 89 | button1.rise(button1_int); |
| electronichamsters | 12:ca9be012700a | 90 | button2.mode(PullDown); |
| electronichamsters | 12:ca9be012700a | 91 | button2.rise(button2_int); |
| electronichamsters | 12:ca9be012700a | 92 | |
| electronichamsters | 12:ca9be012700a | 93 | uint8_t retruneddata = data.read_reg(reset_addr); |
| electronichamsters | 12:ca9be012700a | 94 | pc.printf("%x", retruneddata); |
| electronichamsters | 12:ca9be012700a | 95 | pc.printf(" returned \n\r"); |
| electronichamsters | 12:ca9be012700a | 96 | while (1) { |
| electronichamsters | 12:ca9be012700a | 97 | //x=data.read_data(*dt_usr[0]); |
| electronichamsters | 12:ca9be012700a | 98 | //y=data.read_data(*dt_usr[1]); |
| electronichamsters | 12:ca9be012700a | 99 | //z=data.read_data(*dt_usr[2]); |
| electronichamsters | 10:79e8f92ef156 | 100 | |
| electronichamsters | 12:ca9be012700a | 101 | #if sensorEnb |
| electronichamsters | 12:ca9be012700a | 102 | data.read_data(dt_usr); |
| electronichamsters | 12:ca9be012700a | 103 | #endif |
| electronichamsters | 12:ca9be012700a | 104 | x=dt_usr[0]; |
| electronichamsters | 12:ca9be012700a | 105 | y=dt_usr[1]; |
| electronichamsters | 12:ca9be012700a | 106 | z=dt_usr[2]; |
| electronichamsters | 12:ca9be012700a | 107 | //y=dt_usr[1]; |
| electronichamsters | 12:ca9be012700a | 108 | //z=dt_usr[2]; |
| electronichamsters | 12:ca9be012700a | 109 | //printf(" %f \n\r", x); |
| electronichamsters | 12:ca9be012700a | 110 | //printf(" %f \n\r", y); |
| electronichamsters | 12:ca9be012700a | 111 | //printf(" %f \n\r", z); |
| electronichamsters | 12:ca9be012700a | 112 | #if MyDebugEnb |
| electronichamsters | 12:ca9be012700a | 113 | printf("x=%5.2f y=%5.2f z=%5.2f \n\r", x, y ,z); |
| electronichamsters | 12:ca9be012700a | 114 | #endif |
| electronichamsters | 12:ca9be012700a | 115 | wait_ms(250); |
| electronichamsters | 12:ca9be012700a | 116 | ble.waitForEvent(); |
| electronichamsters | 10:79e8f92ef156 | 117 | |
| electronichamsters | 12:ca9be012700a | 118 | }//end while |
| electronichamsters | 12:ca9be012700a | 119 | } |
