pwm.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2014-2015 Freie Universit├Ąt Berlin
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
61 #ifndef PERIPH_PWM_H
62 #define PERIPH_PWM_H
63 
64 #include <stdint.h>
65 #include <limits.h>
66 
67 #include "periph_cpu.h"
68 #include "periph_conf.h"
69 
70 #ifdef __cplusplus
71 extern "C" {
72 #endif
73 
77 #ifndef PWM_DEV
78 #define PWM_DEV(x) (x)
79 #endif
80 
84 #ifndef PWM_UNDEF
85 #define PWM_UNDEF (UINT_MAX)
86 #endif
87 
91 #ifndef HAVE_PWM_T
92 typedef unsigned int pwm_t;
93 #endif
94 
98 #ifndef HAVE_PWM_MODE_T
99 typedef enum {
100  PWM_LEFT, /*< use left aligned PWM */
101  PWM_RIGHT, /*< use right aligned PWM */
102  PWM_CENTER /*< use center aligned PWM */
103 } pwm_mode_t;
104 #endif
105 
127 uint32_t pwm_init(pwm_t dev, pwm_mode_t mode, uint32_t freq, uint16_t res);
128 
136 uint8_t pwm_channels(pwm_t dev);
137 
148 void pwm_set(pwm_t dev, uint8_t channel, uint16_t value);
149 
161 void pwm_poweron(pwm_t dev);
162 
171 void pwm_poweroff(pwm_t dev);
172 
173 #ifdef __cplusplus
174 }
175 #endif
176 
177 #endif /* PERIPH_PWM_H */
178 
void pwm_poweroff(pwm_t dev)
Stop PWM generation on the given device.
pwm_mode_t
Default PWM mode definition.
Definition: pwm.h:99
uint8_t pwm_channels(pwm_t dev)
Get the number of available channels.
void pwm_poweron(pwm_t dev)
Resume PWM generation on the given device.
void pwm_set(pwm_t dev, uint8_t channel, uint16_t value)
Set the duty-cycle for a given channel of the given PWM device.
uint32_t pwm_init(pwm_t dev, pwm_mode_t mode, uint32_t freq, uint16_t res)
Initialize a PWM device.
unsigned int pwm_t
Default PWM type definition.
Definition: pwm.h:92