summaryrefslogtreecommitdiffstats
path: root/bsps/arm/lpc176x/include/bsp/pwmout.h
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/arm/lpc176x/include/bsp/pwmout.h')
-rwxr-xr-xbsps/arm/lpc176x/include/bsp/pwmout.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/bsps/arm/lpc176x/include/bsp/pwmout.h b/bsps/arm/lpc176x/include/bsp/pwmout.h
new file mode 100755
index 0000000000..1427fc5f3e
--- /dev/null
+++ b/bsps/arm/lpc176x/include/bsp/pwmout.h
@@ -0,0 +1,73 @@
+/**
+ * @file pwmout.h
+ *
+ * @ingroup lpc176x
+ *
+ * @brief PWM-Out controller for the mbed lpc1768 board.
+ */
+
+/*
+ * Copyright (c) 2014 Taller Technologies.
+ *
+ * @author Diaz Marcos (marcos.diaz@tallertechnologies.com)
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.org/license/LICENSE.
+ */
+
+#ifndef LPC176X_PWMOUT_H
+#define LPC176X_PWMOUT_H
+
+#include <bsp.h>
+#include <bsp/io.h>
+#include <bsp/lpc176x.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/**
+ * @brief Initializes the PWM output device and sets an initial period
+ * of 20000us.
+ *
+ * @param pin_number The PWM output pin.
+ * @return RTEMS_SUCCESSFULL if the PWM initialization was OK,
+ * RTEMS_INVALID_NUMBER for a wrong parameter.
+ */
+rtems_status_code pwm_init( const lpc176x_pin_number pin_number );
+
+/**
+ * @brief Sets a period for the PWM output. (Note that this changes the period
+ * for all the PWM outputs.)
+ *
+ * @param pin_number The pin whose period we want to change.
+ * @param period The desired period in microseconds.
+ *
+ * @return RTEMS_SUCCESSFULL if the period's setting was OK,
+ * RTEMS_INVALID_NUMBER for a bad parameter.
+ */
+rtems_status_code pwm_period(
+ const lpc176x_pin_number pin_number,
+ const lpc176x_microseconds period
+);
+
+/**
+ * @brief Sets a pulsewidth for the PWM output.
+ *
+ * @param pin_number The pin whose pulsewidth we want to change.
+ * @param pwidth The desired pulsewidth in microseconds.
+ *
+ * @return RTEMS_SUCCESSFULL if the pulsewidth's setting was OK,
+ * RTEMS_INVALID_NUMBER for a wrong parameter.
+ */
+rtems_status_code pwm_pulsewidth(
+ const lpc176x_pin_number pin_number,
+ const lpc176x_microseconds pwidth
+);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif