Loading...
Searching...
No Matches
pca9685_params.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2018 Gunar Schorcht
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
17#ifndef PCA9685_PARAMS_H
18#define PCA9685_PARAMS_H
19
20#include "board.h"
21#include "saul_reg.h"
22#include "pca9685.h"
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
32#ifndef PCA9685_PARAM_DEV
34#define PCA9685_PARAM_DEV I2C_DEV(0)
35#endif
36
37#ifndef PCA9685_PARAM_ADDR
39#define PCA9685_PARAM_ADDR (PCA9685_I2C_BASE_ADDR + 0)
40#endif
41
42#ifndef PCA9685_PARAM_INV
44#define PCA9685_PARAM_INV (false)
45#endif
46
47#ifndef PCA9685_PARAM_MODE
49#define PCA9685_PARAM_MODE (PWM_LEFT)
50#endif
51
52#ifndef PCA9685_PARAM_FREQ
54#define PCA9685_PARAM_FREQ (100)
55#endif
56
57#ifndef PCA9685_PARAM_RES
59#define PCA9685_PARAM_RES (4096)
60#endif
61
62#ifndef PCA9685_PARAM_OE_PIN
64#define PCA9685_PARAM_OE_PIN (GPIO_UNDEF)
65#endif
66
67#ifndef PCA9685_PARAM_EXT_FREQ
69#define PCA9685_PARAM_EXT_FREQ (0)
70#endif
71
72#ifndef PCA9685_PARAM_OUT_DRV
74#define PCA9685_PARAM_OUT_DRV (PCA9685_TOTEM_POLE)
75#endif
76
77#ifndef PCA9685_PARAM_OUT_NE
79#define PCA9685_PARAM_OUT_NE (PCA9685_OFF)
80#endif
81
82#ifndef PCA9685_PARAMS
83#define PCA9685_PARAMS { \
84 .i2c_dev = PCA9685_PARAM_DEV, \
85 .i2c_addr = PCA9685_PARAM_ADDR, \
86 .inv = PCA9685_PARAM_INV, \
87 .mode = PCA9685_PARAM_MODE, \
88 .freq = PCA9685_PARAM_FREQ, \
89 .res = PCA9685_PARAM_RES, \
90 .ext_freq = PCA9685_PARAM_EXT_FREQ, \
91 .oe_pin = PCA9685_PARAM_OE_PIN, \
92 .out_drv = PCA9685_PARAM_OUT_DRV, \
93 .out_ne = PCA9685_PARAM_OUT_NE, \
94 }
95#endif /* PCA9685_PARAMS */
96
97#ifndef PCA9685_SAUL_PWM_PARAMS
99#define PCA9685_SAUL_PWM_PARAMS { \
100 .name = "PCA9685-0:0", \
101 .dev = 0, \
102 .channel = 0, \
103 .initial = (PCA9685_PARAM_RES >> 1), \
104 }, \
105 { \
106 .name = "PCA9685-0:1", \
107 .dev = 0, \
108 .channel = 1, \
109 .initial = (PCA9685_PARAM_RES >> 2), \
110 }, \
111 { \
112 .name = "PCA9685-0:1", \
113 .dev = 0, \
114 .channel = 2, \
115 .initial = (PCA9685_PARAM_RES >> 3), \
116 },
117#endif /* PCA9685_PARAMS */
124{
125 PCA9685_PARAMS
126};
127
128#if MODULE_SAUL || DOXYGEN
136#endif /* MODULE_SAUL || DOXYGEN */
137
138#ifdef __cplusplus
139}
140#endif
141
142#endif /* PCA9685_PARAMS_H */
static const pca9685_saul_pwm_params_t pca9685_saul_pwm_params[]
Additional meta information to keep in the SAUL registry.
#define PCA9685_SAUL_PWM_PARAMS
Example for mapping PWM channels to SAUL.
static const pca9685_params_t pca9685_params[]
Allocate some memory to store the actual configuration.
SAUL registry interface definition.
PCA9685 device initialization parameters.
Definition pca9685.h:178
PCA9685 configuration structure for mapping PWM channels to SAUL.
Definition pca9685.h:212