Eric Tsai / Mbed 2 deprecated AA_LIS3DH_I2C

Dependencies:   BLE_API LIS3DH mbed nRF51822

Fork of BLE_Sensor by Eric Tsai

Committer:
electronichamsters
Date:
Sat Jun 09 09:13:48 2018 +0000
Revision:
13:3eaae3de806e
Parent:
12:ca9be012700a
debugging I2C

Who changed what in which revision?

UserRevisionLine numberNew 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 }