@@ -29,6 +29,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
29
29
#include " Arduino.h"
30
30
#include " pins_arduino.h"
31
31
#include " mbed.h"
32
+ #include " Wire.h"
32
33
33
34
#define LAST_ARDUINO_PIN_NUMBER LEDB + 1
34
35
typedef enum {
@@ -166,6 +167,69 @@ typedef enum {
166
167
USB_EN = -1
167
168
} breakoutPin;
168
169
170
+ class BreakoutI2CClass {
171
+ public:
172
+ MbedI2C BUS_0;
173
+ MbedI2C BUS_1;
174
+ MbedI2C BUS_2;
175
+ BreakoutI2CClass () : BUS_0(I2C_SDA_0, I2C_SCL_0),
176
+ BUS_1 (I2C_SDA_1, I2C_SCL_1),
177
+ BUS_2(I2C_SDA_2, I2C_SCL_2)
178
+ {
179
+ }
180
+ };
181
+
182
+ class BreakoutUARTClass {
183
+ public:
184
+ UART BUS_0;
185
+ UART BUS_1;
186
+ UART BUS_2;
187
+ UART BUS_3;
188
+ BreakoutUARTClass () : BUS_0(UART0_TX, UART0_RX, UART0_RTS, UART0_CTS),
189
+ BUS_1 (UART1_TX, UART1_RX, UART1_RTS, UART1_CTS),
190
+ BUS_2(UART2_TX, UART2_RX, UART2_RTS, UART2_CTS),
191
+ BUS_3(UART3_TX, UART3_RX, UART3_RTS, UART3_CTS)
192
+ {
193
+ }
194
+ };
195
+
196
+ class PWM {
197
+ breakoutPin pin;
198
+ mbed::PwmOut *pwm;
199
+ public:
200
+ PWM (breakoutPin pin): pin(pin) {
201
+ }
202
+ void begin (unsigned int period, unsigned int duty) {
203
+ if (pwm == NULL ) {
204
+ pwm = new mbed::PwmOut ((PinName)pin);
205
+ pwm->period (period);
206
+ pwm->write (duty);
207
+ } else {
208
+ pwm->period (period);
209
+ pwm->write (duty);
210
+ }
211
+ }
212
+ ~PWM () {
213
+ delete pwm;
214
+ }
215
+
216
+ void start (void ) {
217
+ pwm->resume ();
218
+ }
219
+ void stop (void ) {
220
+ pwm->suspend ();
221
+ }
222
+ };
223
+
224
+ class BreakoutPWMClass {
225
+ public:
226
+ PWM PWM_0;
227
+ PWM PWM_1;
228
+ BreakoutPWMClass () : PWM_0(PWM0), PWM_1(PWM1)
229
+ {
230
+ }
231
+ };
232
+
169
233
class BreakoutCarrierClass {
170
234
public:
171
235
int pinMode (breakoutPin pin, PinMode mode) {
@@ -188,6 +252,17 @@ class BreakoutCarrierClass {
188
252
}
189
253
return -1 ;
190
254
}
255
+ // Option 1
256
+ BreakoutI2CClass I2C;
257
+ // Option 2
258
+ MbedI2C I2C_0;
259
+ MbedI2C I2C_1;
260
+ MbedI2C I2C_2;
261
+ BreakoutCarrierClass () : I2C_0(I2C_SDA_0,I2C_SCL_0), I2C_1(I2C_SDA_1,I2C_SCL_1), I2C_2(I2C_SDA_2,I2C_SCL_2)
262
+ {
263
+ }
264
+ BreakoutUARTClass UART;
265
+ BreakoutPWMClass PWM;
191
266
};
192
267
193
268
BreakoutCarrierClass Breakout;
0 commit comments