PMK2020_full_os

Dependencies:   X_NUCLEO_IKS01A3

Revision:
5:ad46bcbf3320
Parent:
0:cb5eb44cbfb5
--- a/main.cpp	Mon Jun 03 10:07:48 2019 +0000
+++ b/main.cpp	Wed Jul 24 14:29:33 2019 +0000
@@ -4,7 +4,7 @@
  * @author  SRA
  * @version V1.0.0
  * @date    5-March-2019
- * @brief   Simple Example application for using the X_NUCLEO_IKS01A3 
+ * @brief   Simple Example application for using the X_NUCLEO_IKS01A3
  *          MEMS Inertial & Environmental Sensor Nucleo expansion board.
  ******************************************************************************
  * @attention
@@ -34,143 +34,147 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  ******************************************************************************
-*/ 
- 
+*/
+
 /* Includes */
 #include "mbed.h"
 #include "XNucleoIKS01A3.h"
- 
+
 /* Instantiate the expansion board */
 static XNucleoIKS01A3 *mems_expansion_board = XNucleoIKS01A3::instance(D14, D15, D4, D5, A3, D6, A4);
- 
+
 /* Retrieve the composing elements of the expansion board */
 static LIS2DW12Sensor *accelerometer = mems_expansion_board->accelerometer;
- 
+
 InterruptIn mybutton(USER_BUTTON);
 DigitalOut myled(LED1);
- 
+
 volatile int mems_event = 0;
 volatile int send_orientation_request = 0;
- 
+
 /* User button callback. */
-void pressed_cb() {
-  send_orientation_request = 1;
+void pressed_cb()
+{
+    send_orientation_request = 1;
 }
- 
+
 /* Interrupt 1 callback. */
-void int1_cb() {
-  mems_event = 1;
+void int1_cb()
+{
+    mems_event = 1;
 }
- 
+
 /* Print the orientation. */
-void send_orientation() {
-  uint8_t xl = 0;
-  uint8_t xh = 0;
-  uint8_t yl = 0;
-  uint8_t yh = 0;
-  uint8_t zl = 0;
-  uint8_t zh = 0;
-  
-  accelerometer->get_6d_orientation_xl(&xl);
-  accelerometer->get_6d_orientation_xh(&xh);
-  accelerometer->get_6d_orientation_yl(&yl);
-  accelerometer->get_6d_orientation_yh(&yh);
-  accelerometer->get_6d_orientation_zl(&zl);
-  accelerometer->get_6d_orientation_zh(&zh);
-  
-  if ( xl == 1 && yl == 0 && zl == 0 && xh == 0 && yh == 0 && zh == 0 ) {
-    printf( "\r\n  ________________  " \
-            "\r\n |                | " \
-            "\r\n |  *             | " \
-            "\r\n |                | " \
-            "\r\n |                | " \
-            "\r\n |                | " \
-            "\r\n |                | " \
-            "\r\n |________________| \r\n" );
-  }
- 
-  else if ( xl == 0 && yl == 1 && zl == 0 && xh == 0 && yh == 0 && zh == 0 ) {
-    printf( "\r\n  ________________  " \
-            "\r\n |                | " \
-            "\r\n |             *  | " \
-            "\r\n |                | " \
-            "\r\n |                | " \
-            "\r\n |                | " \
-            "\r\n |                | " \
-            "\r\n |________________| \r\n" );
-  }
-  
-  else if ( xl == 0 && yl == 0 && zl == 0 && xh == 0 && yh == 1 && zh == 0 ) {
-    printf( "\r\n  ________________  " \
-            "\r\n |                | " \
-            "\r\n |                | " \
-            "\r\n |                | " \
-            "\r\n |                | " \
-            "\r\n |                | " \
-            "\r\n |  *             | " \
-            "\r\n |________________| \r\n" );
-  }
-  
-  else if ( xl == 0 && yl == 0 && zl == 0 && xh == 1 && yh == 0 && zh == 0 ) {
-    printf( "\r\n  ________________  " \
-            "\r\n |                | " \
-            "\r\n |                | " \
-            "\r\n |                | " \
-            "\r\n |                | " \
-            "\r\n |                | " \
-            "\r\n |             *  | " \
-            "\r\n |________________| \r\n" );
-  }
-  
-  else if ( xl == 0 && yl == 0 && zl == 0 && xh == 0 && yh == 0 && zh == 1 ) {
-    printf( "\r\n  __*_____________  " \
-            "\r\n |________________| \r\n" );
-  }
-  
-  else if ( xl == 0 && yl == 0 && zl == 1 && xh == 0 && yh == 0 && zh == 0 ) {
-    printf( "\r\n  ________________  " \
-            "\r\n |________________| " \
-            "\r\n    *               \r\n" );
-  }
-  
-  else {
-    printf( "None of the 6D orientation axes is set in LIS2DW12 - accelerometer.\r\n" );
-  }
+void send_orientation()
+{
+    uint8_t xl = 0;
+    uint8_t xh = 0;
+    uint8_t yl = 0;
+    uint8_t yh = 0;
+    uint8_t zl = 0;
+    uint8_t zh = 0;
+
+    accelerometer->get_6d_orientation_xl(&xl);
+    accelerometer->get_6d_orientation_xh(&xh);
+    accelerometer->get_6d_orientation_yl(&yl);
+    accelerometer->get_6d_orientation_yh(&yh);
+    accelerometer->get_6d_orientation_zl(&zl);
+    accelerometer->get_6d_orientation_zh(&zh);
+
+    if (xl == 1 && yl == 0 && zl == 0 && xh == 0 && yh == 0 && zh == 0) {
+        printf("\r\n  ________________  " \
+               "\r\n |                | " \
+               "\r\n |  *             | " \
+               "\r\n |                | " \
+               "\r\n |                | " \
+               "\r\n |                | " \
+               "\r\n |                | " \
+               "\r\n |________________| \r\n");
+    }
+
+    else if (xl == 0 && yl == 1 && zl == 0 && xh == 0 && yh == 0 && zh == 0) {
+        printf("\r\n  ________________  " \
+               "\r\n |                | " \
+               "\r\n |             *  | " \
+               "\r\n |                | " \
+               "\r\n |                | " \
+               "\r\n |                | " \
+               "\r\n |                | " \
+               "\r\n |________________| \r\n");
+    }
+
+    else if (xl == 0 && yl == 0 && zl == 0 && xh == 0 && yh == 1 && zh == 0) {
+        printf("\r\n  ________________  " \
+               "\r\n |                | " \
+               "\r\n |                | " \
+               "\r\n |                | " \
+               "\r\n |                | " \
+               "\r\n |                | " \
+               "\r\n |  *             | " \
+               "\r\n |________________| \r\n");
+    }
+
+    else if (xl == 0 && yl == 0 && zl == 0 && xh == 1 && yh == 0 && zh == 0) {
+        printf("\r\n  ________________  " \
+               "\r\n |                | " \
+               "\r\n |                | " \
+               "\r\n |                | " \
+               "\r\n |                | " \
+               "\r\n |                | " \
+               "\r\n |             *  | " \
+               "\r\n |________________| \r\n");
+    }
+
+    else if (xl == 0 && yl == 0 && zl == 0 && xh == 0 && yh == 0 && zh == 1) {
+        printf("\r\n  __*_____________  " \
+               "\r\n |________________| \r\n");
+    }
+
+    else if (xl == 0 && yl == 0 && zl == 1 && xh == 0 && yh == 0 && zh == 0) {
+        printf("\r\n  ________________  " \
+               "\r\n |________________| " \
+               "\r\n    *               \r\n");
+    }
+
+    else {
+        printf("None of the 6D orientation axes is set in LIS2DW12 - accelerometer.\r\n");
+    }
 }
- 
+
 /* Simple main function */
-int main() {
-  /* Attach callback to User button press */
-  mybutton.fall(&pressed_cb);
-  /* Attach callback to LIS2DW12 INT1 */
-  accelerometer->attach_int1_irq(&int1_cb);
- 
-  /* Enable LIS2DW12 accelerometer */
-  accelerometer->enable_x();
-  /* Enable 6D Orientation. */
-  accelerometer->enable_6d_orientation();
-  
-  printf("\r\n--- Starting new run ---\r\n");
- 
-  while(1) {
-    if (mems_event) {
-      mems_event = 0;
-      LIS2DW12_Event_Status_t status;
-      accelerometer->get_event_status(&status);
-      if (status.D6DOrientationStatus) {
-        /* Send 6D Orientation */
-        send_orientation();
-        
-        /* Led blinking. */
-        myled = 1;
-        wait(0.2);
-        myled = 0;
-      }
+int main()
+{
+    /* Attach callback to User button press */
+    mybutton.fall(&pressed_cb);
+    /* Attach callback to LIS2DW12 INT1 */
+    accelerometer->attach_int1_irq(&int1_cb);
+
+    /* Enable LIS2DW12 accelerometer */
+    accelerometer->enable_x();
+    /* Enable 6D Orientation. */
+    accelerometer->enable_6d_orientation();
+
+    printf("\r\n--- Starting new run ---\r\n");
+
+    while (1) {
+        if (mems_event) {
+            mems_event = 0;
+            LIS2DW12_Event_Status_t status;
+            accelerometer->get_event_status(&status);
+            if (status.D6DOrientationStatus) {
+                /* Send 6D Orientation */
+                send_orientation();
+
+                /* Led blinking. */
+                myled = 1;
+                wait(0.2);
+                myled = 0;
+            }
+        }
+
+        if (send_orientation_request) {
+            send_orientation_request = 0;
+            send_orientation();
+        }
     }
- 
-    if(send_orientation_request) {
-      send_orientation_request = 0;
-      send_orientation();
-    }
-  }
 }