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