Lizzy project

Dependencies:   aconno_I2C Lis2dh12 adc52832_common aconno_SEGGER_RTT

Branch:
axis_normal
Revision:
16:482d8f81d6f3
Parent:
15:c0c01188a29b
Child:
23:bf9c1dd2b5cb
--- 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);
     }
 }