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 
106 #ifdef MODULE_ARDUINO
107 
110 typedef struct {
111  int pin;
112  int dev;
113  int chan;
114 } arduino_pwm_t;
115 #endif
116 
138 uint32_t pwm_init(pwm_t dev, pwm_mode_t mode, uint32_t freq, uint16_t res);
139 
147 uint8_t pwm_channels(pwm_t dev);
148 
159 void pwm_set(pwm_t dev, uint8_t channel, uint16_t value);
160 
172 void pwm_poweron(pwm_t dev);
173 
182 void pwm_poweroff(pwm_t dev);
183 
184 #ifdef __cplusplus
185 }
186 #endif
187 
188 #endif /* PERIPH_PWM_H */
189 
pwm_poweroff
void pwm_poweroff(pwm_t dev)
Stop PWM generation on the given device.
pwm_mode_t
pwm_mode_t
Default PWM mode definition.
Definition: pwm.h:99
PWM_LEFT
@ PWM_LEFT
left aligned PWM
Definition: periph_cpu.h:160
pwm_channels
uint8_t pwm_channels(pwm_t dev)
Get the number of available channels.
PWM_RIGHT
@ PWM_RIGHT
right aligned PWM
Definition: periph_cpu.h:161
pwm_set
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.
pwm_poweron
void pwm_poweron(pwm_t dev)
Resume PWM generation on the given device.
pwm_init
uint32_t pwm_init(pwm_t dev, pwm_mode_t mode, uint32_t freq, uint16_t res)
Initialize a PWM device.
pwm_t
unsigned int pwm_t
Default PWM type definition.
Definition: pwm.h:92
pwm_mode_t
pwm_mode_t
Definition: periph_cpu.h:159
PWM_CENTER
@ PWM_CENTER
not supported
Definition: periph_cpu.h:162