Lizzy project
Dependencies: aconno_I2C Lis2dh12 adc52832_common aconno_SEGGER_RTT
Diff: source/main.cpp
- Branch:
- axis_normal
- Revision:
- 16:482d8f81d6f3
- Parent:
- 15:c0c01188a29b
- Child:
- 23:bf9c1dd2b5cb
diff -r c0c01188a29b -r 482d8f81d6f3 source/main.cpp --- a/source/main.cpp Wed Aug 29 14:48:43 2018 +0000 +++ b/source/main.cpp Wed Aug 29 17:08:08 2018 +0000 @@ -11,20 +11,18 @@ char memsI2CAddress = I2C_ADDRESS; -Mutex uartM; -Thread uartT; Thread bleT; Thread measureT; Thread updateServiceT; Thread updateBuzzLedsT; +Thread servLoopT; -DigitalOut redica(PIN_LED_RED); DigitalOut AccVcc(ACC_POWER_PIN); InterruptIn INT1(INT_PIN1); //InterruptIn INT2(INT_PIN2); I2C i2c(I2C_DATA,I2C_CLK); -Ticker bleTicker; +Lis2dh12 mems(&i2c, memsI2CAddress); void disableI2C(){ NRF_TWI0->ENABLE = 0; @@ -45,18 +43,19 @@ extern int untilSleep; void int1Handler(void) -{ +{ + __disable_irq(); + + mems.clearIntFlag(); + untilSleep = ACTIVE_PERIOD / MEASURE_INTERVAL_MS; - redica = !redica; + measureT.signal_set(START_MEAS); - measureT.signal_set(START_MEAS); + __enable_irq(); } int main(){ - Lis2dh12 mems(&i2c, memsI2CAddress); - - redica = 1; tasks_init(); @@ -68,16 +67,18 @@ NRF_UICR->NFCPINS = 0xFFFFFFFE; // Change NFC to GPIO function AccVcc = 1; - wait_ms(POWER_UP_DELAY_MS); + //wait_ms(POWER_UP_DELAY_MS); + Thread::wait(POWER_UP_DELAY_MS); + //measureT.signal_set(START_MEAS); INT1.rise(int1Handler); NRF_GPIO->PIN_CNF[INT_PIN1] &= 0xFFFFFFF3; // NO PullUps BLE &ble = BLE::Instance(); ble.init(bleInitComplete); - + mems.setMode(LOW_POWER); //mems.setMode(HIGH_RES); mems.enableAxes(X_axis); @@ -85,23 +86,23 @@ mems.enableAxes(Z_axis); mems.setODR(ODR_50Hz); //mems.setScale(_16g); - mems.setScale(_2g); + mems.setScale(_8g); mems.int1Setup(0x40); // IntActivity 1 driven to INT1 pad mems.int1Latch(0x01); // Enable int1 latch mems.int1Threshold(INT1_THRESHOLD); mems.int1Duration(INT1_DUR); mems.int1Config(0x2A); // Enable XHigh, YHigh and ZHigh - + bleT.start(callback(bleF, &ble)); // Start bleT measureT.start(callback(measureF, &mems)); updateServiceT.start(updateServiceF); updateBuzzLedsT.start(updateBuzzLedsF); + servLoopT.start(servLoopC); while(1){ //disableI2C(); //ble.waitForEvent(); - getBLEEventQueue()->dispatch_forever(); Thread::wait(0xFFFFFFFF); } }