this is program how build nRF51822 to get ADXL345 data
Dependencies: BLE_API mbed nRF51822
Fork of ADXL345_I2C by
Revision 5:8242f251bcac, committed 2017-12-04
- 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*/);
}
}
