this is program how build nRF51822 to get ADXL345 data

Dependencies:   BLE_API mbed nRF51822

Fork of ADXL345_I2C by Peter Swanson

Files at this revision

API Documentation at this revision

Comitter:
asyrofi
Date:
Mon Dec 04 15:11:37 2017 +0000
Parent:
4:a57b495be9fa
Child:
6:bc835d0f686f
Commit message:
sipp

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Mon Dec 04 14:00:40 2017 +0000
+++ b/main.cpp	Mon Dec 04 15:11:37 2017 +0000
@@ -18,7 +18,7 @@
  DigitalOut led1(LED1);
  Serial uart1(USBTX,USBRX);
  UARTService *uartServicePtr;
- //uint8_t sFlag = 0;
+ uint8_t sFlag = 0;
  
  void disconnectionCallback(const Gap::DisconnectionCallbackParams_t *params)
 {
@@ -50,6 +50,22 @@
     led1 = !led1;
 }
 
+uint8_t c;
+void uartRx(void)
+{
+    
+    c = uart1.getc();
+ 
+    if(sFlag < 39)
+        b[sFlag++] = c;    
+        
+    if(c == '\r' || c == '\n' || sFlag == 15)
+    {
+        ble.updateCharacteristicValue(uartServicePtr->getRXCharacteristicHandle(), (const uint8_t*)b/*params->data*/, sFlag/*bytesRead*/);
+        sFlag = 0;
+    }
+}
+
 
 
  int main() {
@@ -76,6 +92,7 @@
     uart1.baud(9600);
     Ticker ticker;
     ticker.attach(periodicCallback, 1);
+    uart1.attach(uartRx,Serial::RxIrq);
     
     
     DEBUG("Initialising the nRF51822\n\r");
@@ -103,10 +120,10 @@
          ble.waitForEvent();
          wait(0.1);
          accelerometer.getOutput(readings);
-         uart1.printf("%i, %i, %i\n", (uint8_t)readings[0], (uint8_t)readings[1], (uint8_t)readings[2]);
-         ble.updateCharacteristicValue(uartServicePtr->getRXCharacteristicHandle(), (uint8_t*)readings[0]/*params->data*/, 4/*bytesRead*/);
-         ble.updateCharacteristicValue(uartServicePtr->getRXCharacteristicHandle(), (uint8_t*)readings[1]/*params->data*/, 4/*bytesRead*/);
-         ble.updateCharacteristicValue(uartServicePtr->getRXCharacteristicHandle(), (uint8_t*)readings[2]/*params->data*/, 4/*bytesRead*/);   
+         uart1.printf("%i, %i, %i\n", (int16_t)readings[0], (int16_t)readings[1], (int16_t)readings[2]);
+         ble.updateCharacteristicValue(uartServicePtr->getRXCharacteristicHandle(), (const uint8_t*)readings[0]/*params->data*/, sizeof(readings),false/*bytesRead*/);
+         ble.updateCharacteristicValue(uartServicePtr->getRXCharacteristicHandle(), (const uint8_t*)readings[1]/*params->data*/, sizeof(readings),false/*bytesRead*/);
+         ble.updateCharacteristicValue(uartServicePtr->getRXCharacteristicHandle(), (const uint8_t*)readings[2]/*params->data*/, sizeof(readings),false/*bytesRead*/);   
      }
  
  }