Loading...
Searching...
No Matches
arduino_board_pwm.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2023 Otto-von-Guericke-Universität Magdeburg
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
21
22#include "arduino_iomap.h"
23#include "periph/pwm.h"
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29#ifdef DOXYGEN
33#define ARDUINO_PWM_FREQU /* implementation defined */
34#else
35# ifndef ARDUINO_PWM_FREQU
36# define ARDUINO_PWM_FREQU (490U)
37# endif
38#endif
39
56static const arduino_pwm_t arduino_pwm_list[] = {
57#ifdef ARDUINO_PIN_0_PWM_DEV
58 { .dev = ARDUINO_PIN_0_PWM_DEV, .chan = ARDUINO_PIN_0_PWM_CHAN, .pin = 0 },
59#endif
60#ifdef ARDUINO_PIN_1_PWM_DEV
61 { .dev = ARDUINO_PIN_1_PWM_DEV, .chan = ARDUINO_PIN_1_PWM_CHAN, .pin = 1 },
62#endif
63#ifdef ARDUINO_PIN_2_PWM_DEV
64 { .dev = ARDUINO_PIN_2_PWM_DEV, .chan = ARDUINO_PIN_2_PWM_CHAN, .pin = 2 },
65#endif
66#ifdef ARDUINO_PIN_3_PWM_DEV
67 { .dev = ARDUINO_PIN_3_PWM_DEV, .chan = ARDUINO_PIN_3_PWM_CHAN, .pin = 3 },
68#endif
69#ifdef ARDUINO_PIN_4_PWM_DEV
70 { .dev = ARDUINO_PIN_4_PWM_DEV, .chan = ARDUINO_PIN_4_PWM_CHAN, .pin = 4 },
71#endif
72#ifdef ARDUINO_PIN_5_PWM_DEV
73 { .dev = ARDUINO_PIN_5_PWM_DEV, .chan = ARDUINO_PIN_5_PWM_CHAN, .pin = 5 },
74#endif
75#ifdef ARDUINO_PIN_6_PWM_DEV
76 { .dev = ARDUINO_PIN_6_PWM_DEV, .chan = ARDUINO_PIN_6_PWM_CHAN, .pin = 6 },
77#endif
78#ifdef ARDUINO_PIN_7_PWM_DEV
79 { .dev = ARDUINO_PIN_7_PWM_DEV, .chan = ARDUINO_PIN_7_PWM_CHAN, .pin = 7 },
80#endif
81#ifdef ARDUINO_PIN_8_PWM_DEV
82 { .dev = ARDUINO_PIN_8_PWM_DEV, .chan = ARDUINO_PIN_8_PWM_CHAN, .pin = 8 },
83#endif
84#ifdef ARDUINO_PIN_9_PWM_DEV
85 { .dev = ARDUINO_PIN_9_PWM_DEV, .chan = ARDUINO_PIN_9_PWM_CHAN, .pin = 9 },
86#endif
87#ifdef ARDUINO_PIN_10_PWM_DEV
88 { .dev = ARDUINO_PIN_10_PWM_DEV, .chan = ARDUINO_PIN_10_PWM_CHAN, .pin = 10 },
89#endif
90#ifdef ARDUINO_PIN_11_PWM_DEV
91 { .dev = ARDUINO_PIN_11_PWM_DEV, .chan = ARDUINO_PIN_11_PWM_CHAN, .pin = 11 },
92#endif
93#ifdef ARDUINO_PIN_12_PWM_DEV
94 { .dev = ARDUINO_PIN_12_PWM_DEV, .chan = ARDUINO_PIN_12_PWM_CHAN, .pin = 12 },
95#endif
96#ifdef ARDUINO_PIN_13_PWM_DEV
97 { .dev = ARDUINO_PIN_13_PWM_DEV, .chan = ARDUINO_PIN_13_PWM_CHAN, .pin = 13 },
98#endif
99#ifdef ARDUINO_PIN_14_PWM_DEV
100 { .dev = ARDUINO_PIN_14_PWM_DEV, .chan = ARDUINO_PIN_14_PWM_CHAN, .pin = 14 },
101#endif
102#ifdef ARDUINO_PIN_15_PWM_DEV
103 { .dev = ARDUINO_PIN_15_PWM_DEV, .chan = ARDUINO_PIN_15_PWM_CHAN, .pin = 15 },
104#endif
105#ifdef ARDUINO_PIN_16_PWM_DEV
106 { .dev = ARDUINO_PIN_16_PWM_DEV, .chan = ARDUINO_PIN_16_PWM_CHAN, .pin = 16 },
107#endif
108#ifdef ARDUINO_PIN_17_PWM_DEV
109 { .dev = ARDUINO_PIN_17_PWM_DEV, .chan = ARDUINO_PIN_17_PWM_CHAN, .pin = 17 },
110#endif
111#ifdef ARDUINO_PIN_18_PWM_DEV
112 { .dev = ARDUINO_PIN_18_PWM_DEV, .chan = ARDUINO_PIN_18_PWM_CHAN, .pin = 18 },
113#endif
114#ifdef ARDUINO_PIN_19_PWM_DEV
115 { .dev = ARDUINO_PIN_19_PWM_DEV, .chan = ARDUINO_PIN_19_PWM_CHAN, .pin = 19 },
116#endif
117#ifdef ARDUINO_PIN_20_PWM_DEV
118 { .dev = ARDUINO_PIN_20_PWM_DEV, .chan = ARDUINO_PIN_20_PWM_CHAN, .pin = 20 },
119#endif
120#ifdef ARDUINO_PIN_21_PWM_DEV
121 { .dev = ARDUINO_PIN_21_PWM_DEV, .chan = ARDUINO_PIN_21_PWM_CHAN, .pin = 21 },
122#endif
123#ifdef ARDUINO_PIN_22_PWM_DEV
124 { .dev = ARDUINO_PIN_22_PWM_DEV, .chan = ARDUINO_PIN_22_PWM_CHAN, .pin = 22 },
125#endif
126#ifdef ARDUINO_PIN_23_PWM_DEV
127 { .dev = ARDUINO_PIN_23_PWM_DEV, .chan = ARDUINO_PIN_23_PWM_CHAN, .pin = 23 },
128#endif
129#ifdef ARDUINO_PIN_24_PWM_DEV
130 { .dev = ARDUINO_PIN_24_PWM_DEV, .chan = ARDUINO_PIN_24_PWM_CHAN, .pin = 24 },
131#endif
132#ifdef ARDUINO_PIN_25_PWM_DEV
133 { .dev = ARDUINO_PIN_25_PWM_DEV, .chan = ARDUINO_PIN_25_PWM_CHAN, .pin = 25 },
134#endif
135#ifdef ARDUINO_PIN_26_PWM_DEV
136 { .dev = ARDUINO_PIN_26_PWM_DEV, .chan = ARDUINO_PIN_26_PWM_CHAN, .pin = 26 },
137#endif
138#ifdef ARDUINO_PIN_27_PWM_DEV
139 { .dev = ARDUINO_PIN_27_PWM_DEV, .chan = ARDUINO_PIN_27_PWM_CHAN, .pin = 27 },
140#endif
141#ifdef ARDUINO_PIN_28_PWM_DEV
142 { .dev = ARDUINO_PIN_28_PWM_DEV, .chan = ARDUINO_PIN_28_PWM_CHAN, .pin = 28 },
143#endif
144#ifdef ARDUINO_PIN_29_PWM_DEV
145 { .dev = ARDUINO_PIN_29_PWM_DEV, .chan = ARDUINO_PIN_29_PWM_CHAN, .pin = 29 },
146#endif
147#ifdef ARDUINO_PIN_30_PWM_DEV
148 { .dev = ARDUINO_PIN_30_PWM_DEV, .chan = ARDUINO_PIN_30_PWM_CHAN, .pin = 30 },
149#endif
150#ifdef ARDUINO_PIN_31_PWM_DEV
151 { .dev = ARDUINO_PIN_31_PWM_DEV, .chan = ARDUINO_PIN_31_PWM_CHAN, .pin = 31 },
152#endif
153};
154
155#ifdef __cplusplus
156}
157#endif
158
#define ARDUINO_PIN_9_PWM_DEV
PWM device for Arduino pin 9.
#define ARDUINO_PIN_14_PWM_CHAN
PWM channel for Arduino pin 14.
#define ARDUINO_PIN_9_PWM_CHAN
PWM channel for Arduino pin 9.
#define ARDUINO_PIN_8_PWM_CHAN
PWM channel for Arduino pin 8.
#define ARDUINO_PIN_7_PWM_DEV
PWM device for Arduino pin 7.
#define ARDUINO_PIN_2_PWM_CHAN
PWM channel for Arduino pin 2.
#define ARDUINO_PIN_6_PWM_DEV
PWM device for Arduino pin 6.
#define ARDUINO_PIN_3_PWM_CHAN
PWM channel for Arduino pin 3.
#define ARDUINO_PIN_15_PWM_CHAN
PWM channel for Arduino pin 15.
#define ARDUINO_PIN_3_PWM_DEV
PWM device for Arduino pin 3.
#define ARDUINO_PIN_4_PWM_DEV
PWM device for Arduino pin 4.
#define ARDUINO_PIN_7_PWM_CHAN
PWM channel for Arduino pin 7.
#define ARDUINO_PIN_2_PWM_DEV
PWM device for Arduino pin 2.
#define ARDUINO_PIN_5_PWM_CHAN
PWM channel for Arduino pin 5.
#define ARDUINO_PIN_8_PWM_DEV
PWM device for Arduino pin 8.
#define ARDUINO_PIN_16_PWM_CHAN
PWM channel for Arduino pin 16.
#define ARDUINO_PIN_15_PWM_DEV
PWM device for Arduino pin 15.
#define ARDUINO_PIN_6_PWM_CHAN
PWM channel for Arduino pin 6.
#define ARDUINO_PIN_16_PWM_DEV
PWM device for Arduino pin 16.
#define ARDUINO_PIN_4_PWM_CHAN
PWM channel for Arduino pin 4.
#define ARDUINO_PIN_5_PWM_DEV
PWM device for Arduino pin 5.
#define ARDUINO_PIN_14_PWM_DEV
PWM device for Arduino pin 14.
static const arduino_pwm_t arduino_pwm_list[]
List of PWM GPIO mappings.
#define ARDUINO_PIN_10_PWM_CHAN
PWM channel for Arduino pin 10.
#define ARDUINO_PIN_10_PWM_DEV
PWM device for Arduino pin 10.
#define ARDUINO_PIN_11_PWM_CHAN
PWM channel for Arduino pin 11.
#define ARDUINO_PIN_11_PWM_DEV
PWM device for Arduino pin 11.
Low-level PWM peripheral driver interface definitions.