summaryrefslogtreecommitdiff
path: root/drivers/delay_timer/delay_timer.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/delay_timer/delay_timer.c')
-rw-r--r--drivers/delay_timer/delay_timer.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/delay_timer/delay_timer.c b/drivers/delay_timer/delay_timer.c
index ed7ed52e..be0ed298 100644
--- a/drivers/delay_timer/delay_timer.c
+++ b/drivers/delay_timer/delay_timer.c
@@ -38,6 +38,29 @@
static const timer_ops_t *ops;
/***********************************************************
+ * Get a timer value in microseconds. The driver must
+ * be initialized before calling this function.
+ ***********************************************************/
+uint32_t timer_value_get(void)
+{
+ assert(ops != 0 &&
+ (ops->clk_mult != 0) &&
+ (ops->clk_div != 0) &&
+ (ops->get_timer_value != 0));
+
+ return (~ops->get_timer_value() * ops->clk_mult) / ops->clk_div;
+}
+
+/***********************************************************
+ * Get a timer value in miliseconds. The driver must
+ * be initialized before calling this function.
+ ***********************************************************/
+uint32_t timer_value_ms_get(void)
+{
+ return timer_value_get() / 1000;
+}
+
+/***********************************************************
* Delay for the given number of microseconds. The driver must
* be initialized before calling this function.
***********************************************************/