@@ -29,6 +29,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
2929#include " Arduino.h"
3030#include " pins_arduino.h"
3131#include " mbed.h"
32+ #include " Wire.h"
3233
3334#define LAST_ARDUINO_PIN_NUMBER LEDB + 1
3435typedef enum {
@@ -166,6 +167,69 @@ typedef enum {
166167 USB_EN = -1
167168} breakoutPin;
168169
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+
169233class BreakoutCarrierClass {
170234public:
171235 int pinMode (breakoutPin pin, PinMode mode) {
@@ -188,6 +252,17 @@ class BreakoutCarrierClass {
188252 }
189253 return -1 ;
190254 }
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;
191266};
192267
193268BreakoutCarrierClass Breakout;
0 commit comments