Skip to content

Commit ad18b96

Browse files
author
pennam
committed
[WIP] I2C UART PWM proposal
1 parent 8a49d2e commit ad18b96

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed

PortentaBreakoutCarrier.h

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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
3435
typedef 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+
169233
class BreakoutCarrierClass {
170234
public:
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

193268
BreakoutCarrierClass Breakout;

0 commit comments

Comments
 (0)