Example

Dependencies:   FXAS21002 FXOS8700Q

Revision:
0:11cc2b7889af
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/simple-mbed-cloud-client/mbed-cloud-client/sal-stack-nanostack-eventloop/source/minar_hal_timer.cpp	Tue Nov 19 09:49:38 2019 +0000
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2016 ARM Limited, All Rights Reserved
+ */
+
+// Include before mbed.h to properly get UINT*_C()
+
+#include "ns_types.h"
+
+#include "platform/arm_hal_timer.h"
+#include "platform/arm_hal_interrupt.h"
+
+#if defined(NS_EVENTLOOP_USE_TICK_TIMER) && defined(YOTTA_CFG_MINAR)
+
+#include "minar/minar.h"
+#include "mbed-drivers/mbed.h"
+#include "core-util/FunctionPointer.h"
+#include "core-util/Event.h"
+
+#define TICK_TIMER_ID   1
+
+using minar::Scheduler;
+using minar::milliseconds;
+using minar::callback_handle_t;
+using namespace mbed::util;
+
+static callback_handle_t sys_timer_handle;
+static void (*tick_timer_callback)(void);
+
+void timer_callback(void const *funcArgument)
+{
+    (void)funcArgument;
+    if (NULL != tick_timer_callback) {
+        tick_timer_callback();
+    }
+}
+
+// Low precision platform tick timer
+int8_t platform_tick_timer_register(void (*tick_timer_cb_handler)(void))
+{
+    tick_timer_callback = tick_timer_cb_handler;
+    return TICK_TIMER_ID;
+}
+
+int8_t platform_tick_timer_start(uint32_t period_ms)
+{
+    int8_t retval = -1;
+    if (sys_timer_handle != NULL) {
+        return 0; // Timer already started already so return success
+    }
+    Event e = FunctionPointer1<void, void const *>(timer_callback).bind(NULL);
+    if (e != NULL) {
+        sys_timer_handle = Scheduler::postCallback(e).period(milliseconds(period_ms)).getHandle();
+        if (sys_timer_handle != NULL) {
+            retval = 0;
+        }
+    }
+    return retval;
+}
+
+int8_t platform_tick_timer_stop(void)
+{
+    int8_t retval = -1;
+    if (sys_timer_handle != NULL) {
+        Scheduler::cancelCallback(sys_timer_handle);
+        sys_timer_handle = NULL;
+        retval = 0;
+    }
+    return retval;
+}
+
+#endif // defined(NS_EVENTLOOP_USE_TICK_TIMER) && defined(YOTTA_CFG)