aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--os/hal/platforms/LPC8xx/gpt_lld.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/os/hal/platforms/LPC8xx/gpt_lld.h b/os/hal/platforms/LPC8xx/gpt_lld.h
index 228678654..73f080f66 100644
--- a/os/hal/platforms/LPC8xx/gpt_lld.h
+++ b/os/hal/platforms/LPC8xx/gpt_lld.h
@@ -152,6 +152,22 @@ struct GPTDriver {
/* Driver macros. */
/*===========================================================================*/
+/**
+ * @brief Changes the interval of GPT peripheral.
+ * @details This function changes the interval of a running GPT unit.
+ * @pre The GPT unit must have been activated using @p gptStart().
+ * @pre The GPT unit must have been running in continuous mode using
+ * @p gptStartContinuous().
+ * @post The GPT unit interval is changed to the new value.
+ * @note The function has effect at the next cycle start.
+ *
+ * @param[in] gptp pointer to a @p GPTDriver object
+ * @param[in] interval new cycle time in timer ticks
+ * @notapi
+ */
+#define gpt_lld_change_interval(gptp, interval) \
+ ((gptp)->tmr->INTVAL = ((interval*(gptp)->pr) - 1))
+
/*===========================================================================*/
/* External declarations. */
/*===========================================================================*/