From 4960607a1efb33d2a894d9595fe94c2ab55e87bd Mon Sep 17 00:00:00 2001
From: Federico Pellegrin <fede@evolware.org>
Date: Thu, 11 Oct 2018 14:42:46 +0200
Subject: [PATCH] sys/arduino: add arduino time functions micros() and
 delayMicroseconds()

---
 sys/arduino/base.cpp            | 10 ++++++++++
 sys/arduino/include/arduino.hpp | 14 ++++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/sys/arduino/base.cpp b/sys/arduino/base.cpp
index 4c800018ab..99a7e794e2 100644
--- a/sys/arduino/base.cpp
+++ b/sys/arduino/base.cpp
@@ -62,6 +62,16 @@ void delay(unsigned long msec)
     xtimer_usleep(1000 * msec);
 }
 
+void delayMicroseconds(unsigned long usec)
+{
+    xtimer_usleep(usec);
+}
+
+unsigned int micros()
+{
+    return xtimer_now_usec();
+}
+
 /*
  * Bitfield for the state of the ADC-channels.
  * 0: Not initialized
diff --git a/sys/arduino/include/arduino.hpp b/sys/arduino/include/arduino.hpp
index b94f17519f..6043b31c57 100644
--- a/sys/arduino/include/arduino.hpp
+++ b/sys/arduino/include/arduino.hpp
@@ -82,6 +82,20 @@ int digitalRead(int pin);
  */
 void delay(unsigned long msec);
 
+/**
+ * @brief   Sleep for a given amount of time [microseconds]
+ *
+ * @param[in] usec      number of microseconds to sleep
+ */
+void delayMicroseconds(unsigned long usec);
+
+/**
+ * @brief   Returns the number of microseconds since start
+ *
+ * @return value of microseconds since start
+ */
+unsigned long micros();
+
 /**
  * @brief   Read the current value of the given analog pin
  *
-- 
GitLab