Skip to content

Commit 263e262

Browse files
committed
Merge branch 'BBC-Microbit-V2'
* BBC-Microbit-V2: BBCmicrobitV2: add LED_BUILTIN define Add sandeepmistry:nRF5:BBCmicrobitV2 to Travis CI Use digitalPinToPort, digitalPinToPin and digitalPinToBitMask macros in pinMode, digitalWrite, digitalRead and Wire Fix digitalPinToPort, digitalPinToBitMask macros and add digitalPinToPin macros
2 parents a5723a3 + 8a4e4c7 commit 263e262

File tree

6 files changed

+95
-94
lines changed

6 files changed

+95
-94
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,4 @@ script:
4141
- buildExampleSketch sandeepmistry:nRF5:Sinobit 01.Basics BareMinimum
4242
- buildExampleSketch sandeepmistry:nRF5:DWM1001-DEV 01.Basics Blink
4343
- buildExampleSketch sandeepmistry:nRF5:SeeedArchLink 01.Basics Blink
44+
- buildExampleSketch sandeepmistry:nRF5:BBCmicrobitV2 01.Basics Blink

cores/nRF5/Arduino.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,9 @@ void loop( void ) ;
9292

9393
#define bit(b) (1UL << (b))
9494

95-
#define digitalPinToPort(P) ( &(NRF_GPIO[P]) )
96-
#define digitalPinToBitMask(P) ( 1 << g_ADigitalPinMap[P] )
95+
#define digitalPinToPort(P) ( &(NRF_GPIO[g_ADigitalPinMap[P] >> 5]) ) // g_ADigitalPinMap[P] / 32
96+
#define digitalPinToPin(P) ( g_ADigitalPinMap[P] & 0x1f ) // g_ADigitalPinMap[P] % 31
97+
#define digitalPinToBitMask(P) ( 1 << g_ADigitalPinMap[P & 0x1f] ) // g_ADigitalPinMap[P] % 31
9798
//#define analogInPinToBit(P) ( )
9899
#define portOutputRegister(port) ( &(port->OUTSET) )
99100
#define portInputRegister(port) ( &(port->IN) )

cores/nRF5/wiring_digital.c

Lines changed: 29 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -24,64 +24,52 @@
2424
extern "C" {
2525
#endif
2626

27-
#define GPIO_PORT0 ((NRF_GPIO_Type*) 0x50000000UL)
28-
#define GPIO_PORT1 ((NRF_GPIO_Type*) 0x50000300UL)
29-
30-
static inline NRF_GPIO_Type * decodePin(uint32_t *pin) {
31-
if (*pin < 32) {
32-
return GPIO_PORT0;
33-
} else {
34-
*pin = *pin & 0x1F; // pin number is 5 lowest bits
35-
return GPIO_PORT1;
36-
}
37-
}
38-
3927
void pinMode( uint32_t ulPin, uint32_t ulMode )
4028
{
4129
if (ulPin >= PINS_COUNT) {
4230
return;
4331
}
4432

45-
ulPin = g_ADigitalPinMap[ulPin];
46-
NRF_GPIO_Type * port = decodePin(&ulPin);
33+
NRF_GPIO_Type* port = digitalPinToPort(ulPin);
34+
uint32_t pin = digitalPinToPin(ulPin);
4735

4836
// Set pin mode according to chapter '22.6.3 I/O Pin Configuration'
4937
switch ( ulMode )
5038
{
5139
case INPUT:
5240
// Set pin to input mode
53-
port->PIN_CNF[ulPin] = ((uint32_t)GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos)
54-
| ((uint32_t)GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos)
55-
| ((uint32_t)GPIO_PIN_CNF_PULL_Disabled << GPIO_PIN_CNF_PULL_Pos)
56-
| ((uint32_t)GPIO_PIN_CNF_DRIVE_S0S1 << GPIO_PIN_CNF_DRIVE_Pos)
57-
| ((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
41+
port->PIN_CNF[pin] = ((uint32_t)GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos)
42+
| ((uint32_t)GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos)
43+
| ((uint32_t)GPIO_PIN_CNF_PULL_Disabled << GPIO_PIN_CNF_PULL_Pos)
44+
| ((uint32_t)GPIO_PIN_CNF_DRIVE_S0S1 << GPIO_PIN_CNF_DRIVE_Pos)
45+
| ((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
5846
break ;
5947

6048
case INPUT_PULLUP:
6149
// Set pin to input mode with pull-up resistor enabled
62-
port->PIN_CNF[ulPin] = ((uint32_t)GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos)
63-
| ((uint32_t)GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos)
64-
| ((uint32_t)GPIO_PIN_CNF_PULL_Pullup << GPIO_PIN_CNF_PULL_Pos)
65-
| ((uint32_t)GPIO_PIN_CNF_DRIVE_S0S1 << GPIO_PIN_CNF_DRIVE_Pos)
66-
| ((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
50+
port->PIN_CNF[pin] = ((uint32_t)GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos)
51+
| ((uint32_t)GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos)
52+
| ((uint32_t)GPIO_PIN_CNF_PULL_Pullup << GPIO_PIN_CNF_PULL_Pos)
53+
| ((uint32_t)GPIO_PIN_CNF_DRIVE_S0S1 << GPIO_PIN_CNF_DRIVE_Pos)
54+
| ((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
6755
break ;
6856

6957
case INPUT_PULLDOWN:
7058
// Set pin to input mode with pull-down resistor enabled
71-
port->PIN_CNF[ulPin] = ((uint32_t)GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos)
72-
| ((uint32_t)GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos)
73-
| ((uint32_t)GPIO_PIN_CNF_PULL_Pulldown << GPIO_PIN_CNF_PULL_Pos)
74-
| ((uint32_t)GPIO_PIN_CNF_DRIVE_S0S1 << GPIO_PIN_CNF_DRIVE_Pos)
75-
| ((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
59+
port->PIN_CNF[pin] = ((uint32_t)GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos)
60+
| ((uint32_t)GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos)
61+
| ((uint32_t)GPIO_PIN_CNF_PULL_Pulldown << GPIO_PIN_CNF_PULL_Pos)
62+
| ((uint32_t)GPIO_PIN_CNF_DRIVE_S0S1 << GPIO_PIN_CNF_DRIVE_Pos)
63+
| ((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
7664
break ;
7765

7866
case OUTPUT:
7967
// Set pin to output mode
80-
port->PIN_CNF[ulPin] = ((uint32_t)GPIO_PIN_CNF_DIR_Output << GPIO_PIN_CNF_DIR_Pos)
81-
| ((uint32_t)GPIO_PIN_CNF_INPUT_Disconnect << GPIO_PIN_CNF_INPUT_Pos)
82-
| ((uint32_t)GPIO_PIN_CNF_PULL_Disabled << GPIO_PIN_CNF_PULL_Pos)
83-
| ((uint32_t)GPIO_PIN_CNF_DRIVE_S0S1 << GPIO_PIN_CNF_DRIVE_Pos)
84-
| ((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
68+
port->PIN_CNF[pin] = ((uint32_t)GPIO_PIN_CNF_DIR_Output << GPIO_PIN_CNF_DIR_Pos)
69+
| ((uint32_t)GPIO_PIN_CNF_INPUT_Disconnect << GPIO_PIN_CNF_INPUT_Pos)
70+
| ((uint32_t)GPIO_PIN_CNF_PULL_Disabled << GPIO_PIN_CNF_PULL_Pos)
71+
| ((uint32_t)GPIO_PIN_CNF_DRIVE_S0S1 << GPIO_PIN_CNF_DRIVE_Pos)
72+
| ((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
8573
break ;
8674

8775
default:
@@ -96,17 +84,17 @@ void digitalWrite( uint32_t ulPin, uint32_t ulVal )
9684
return;
9785
}
9886

99-
ulPin = g_ADigitalPinMap[ulPin];
100-
NRF_GPIO_Type * port = decodePin(&ulPin);
87+
NRF_GPIO_Type* port = digitalPinToPort(ulPin);
88+
uint32_t mask = digitalPinToBitMask(ulPin);
10189

10290
switch ( ulVal )
10391
{
10492
case LOW:
105-
port->OUTCLR = (1UL << ulPin);
93+
port->OUTCLR = mask;
10694
break ;
10795

10896
default:
109-
port->OUTSET = (1UL << ulPin);
97+
port->OUTSET = mask;
11098
break ;
11199
}
112100

@@ -119,10 +107,10 @@ int digitalRead( uint32_t ulPin )
119107
return 0;
120108
}
121109

122-
ulPin = g_ADigitalPinMap[ulPin];
123-
NRF_GPIO_Type * port = decodePin(&ulPin);
110+
NRF_GPIO_Type* port = digitalPinToPort(ulPin);
111+
uint32_t pin = digitalPinToPin(ulPin);
124112

125-
return ((port->IN >> ulPin) & 1UL) ? HIGH : LOW ;
113+
return ((port->IN >> pin) & 1UL) ? HIGH : LOW ;
126114
}
127115

128116
#ifdef __cplusplus

libraries/Wire/Wire_nRF51.cpp

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,35 +33,41 @@ extern "C" {
3333
TwoWire::TwoWire(NRF_TWI_Type * p_twi, uint8_t pinSDA, uint8_t pinSCL)
3434
{
3535
this->_p_twi = p_twi;
36-
this->_uc_pinSDA = g_ADigitalPinMap[pinSDA];
37-
this->_uc_pinSCL = g_ADigitalPinMap[pinSCL];
36+
this->_uc_pinSDA = pinSDA;
37+
this->_uc_pinSCL = pinSCL;
3838
this->transmissionBegun = false;
3939
this->suspended = false;
4040
}
4141

4242
#ifdef ARDUINO_GENERIC
4343
void TwoWire::setPins(uint8_t pinSDA, uint8_t pinSCL)
4444
{
45-
this->_uc_pinSDA = g_ADigitalPinMap[pinSDA];
46-
this->_uc_pinSCL = g_ADigitalPinMap[pinSCL];
45+
this->_uc_pinSDA = pinSDA;
46+
this->_uc_pinSCL = pinSCL;
4747
}
4848
#endif // ARDUINO_GENERIC
4949

5050
void TwoWire::begin(void) {
5151
//Master Mode
5252
master = true;
5353

54-
NRF_GPIO->PIN_CNF[_uc_pinSCL] = ((uint32_t)GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos)
55-
| ((uint32_t)GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos)
56-
| ((uint32_t)GPIO_PIN_CNF_PULL_Pullup << GPIO_PIN_CNF_PULL_Pos)
57-
| ((uint32_t)GPIO_PIN_CNF_DRIVE_S0D1 << GPIO_PIN_CNF_DRIVE_Pos)
58-
| ((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
59-
60-
NRF_GPIO->PIN_CNF[_uc_pinSDA] = ((uint32_t)GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos)
61-
| ((uint32_t)GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos)
62-
| ((uint32_t)GPIO_PIN_CNF_PULL_Pullup << GPIO_PIN_CNF_PULL_Pos)
63-
| ((uint32_t)GPIO_PIN_CNF_DRIVE_S0D1 << GPIO_PIN_CNF_DRIVE_Pos)
64-
| ((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
54+
NRF_GPIO_Type* portSCL = digitalPinToPort(_uc_pinSCL);
55+
NRF_GPIO_Type* portSDA = digitalPinToPort(_uc_pinSDA);
56+
uint32_t pinSCL = digitalPinToPin(_uc_pinSCL);
57+
uint32_t pinSDA = digitalPinToPin(_uc_pinSDA);
58+
59+
60+
portSCL->PIN_CNF[pinSCL] = ((uint32_t)GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos)
61+
| ((uint32_t)GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos)
62+
| ((uint32_t)GPIO_PIN_CNF_PULL_Pullup << GPIO_PIN_CNF_PULL_Pos)
63+
| ((uint32_t)GPIO_PIN_CNF_DRIVE_S0D1 << GPIO_PIN_CNF_DRIVE_Pos)
64+
| ((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
65+
66+
portSDA->PIN_CNF[pinSDA] = ((uint32_t)GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos)
67+
| ((uint32_t)GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos)
68+
| ((uint32_t)GPIO_PIN_CNF_PULL_Pullup << GPIO_PIN_CNF_PULL_Pos)
69+
| ((uint32_t)GPIO_PIN_CNF_DRIVE_S0D1 << GPIO_PIN_CNF_DRIVE_Pos)
70+
| ((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
6571

6672
_p_twi->FREQUENCY = (TWI_FREQUENCY_FREQUENCY_K100 << TWI_FREQUENCY_FREQUENCY_Pos);
6773
_p_twi->ENABLE = (TWI_ENABLE_ENABLE_Enabled << TWI_ENABLE_ENABLE_Pos);

libraries/Wire/Wire_nRF52.cpp

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -29,50 +29,44 @@ extern "C" {
2929

3030
#include "Wire.h"
3131

32-
#define GPIO_PORT0 ((NRF_GPIO_Type*) 0x50000000UL)
33-
#define GPIO_PORT1 ((NRF_GPIO_Type*) 0x50000300UL)
34-
35-
static volatile uint32_t* pincfg_reg(uint32_t pin) {
36-
if (pin < 32) {
37-
return &GPIO_PORT0->PIN_CNF[pin];
38-
} else {
39-
return &GPIO_PORT1->PIN_CNF[pin & 0x1F];
40-
}
41-
}
42-
4332
TwoWire::TwoWire(NRF_TWIM_Type * p_twim, NRF_TWIS_Type * p_twis, IRQn_Type IRQn, uint8_t pinSDA, uint8_t pinSCL)
4433
{
4534
this->_p_twim = p_twim;
4635
this->_p_twis = p_twis;
4736
this->_IRQn = IRQn;
48-
this->_uc_pinSDA = g_ADigitalPinMap[pinSDA];
49-
this->_uc_pinSCL = g_ADigitalPinMap[pinSCL];
37+
this->_uc_pinSDA = pinSDA;
38+
this->_uc_pinSCL = pinSCL;
5039
transmissionBegun = false;
5140
}
5241

5342
#ifdef ARDUINO_GENERIC
5443
void TwoWire::setPins(uint8_t pinSDA, uint8_t pinSCL)
5544
{
56-
this->_uc_pinSDA = g_ADigitalPinMap[pinSDA];
57-
this->_uc_pinSCL = g_ADigitalPinMap[pinSCL];
45+
this->_uc_pinSDA = pinSDA;
46+
this->_uc_pinSCL = pinSCL;
5847
}
5948
#endif // ARDUINO_GENERIC
6049

6150
void TwoWire::begin(void) {
6251
//Master Mode
6352
master = true;
6453

65-
*pincfg_reg(_uc_pinSCL) = ((uint32_t)GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos)
66-
| ((uint32_t)GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos)
67-
| ((uint32_t)GPIO_PIN_CNF_PULL_Pullup << GPIO_PIN_CNF_PULL_Pos)
68-
| ((uint32_t)GPIO_PIN_CNF_DRIVE_S0D1 << GPIO_PIN_CNF_DRIVE_Pos)
69-
| ((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
54+
NRF_GPIO_Type* portSCL = digitalPinToPort(_uc_pinSCL);
55+
NRF_GPIO_Type* portSDA = digitalPinToPort(_uc_pinSDA);
56+
uint32_t pinSCL = digitalPinToPin(_uc_pinSCL);
57+
uint32_t pinSDA = digitalPinToPin(_uc_pinSDA);
58+
59+
portSCL->PIN_CNF[pinSCL] = ((uint32_t)GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos)
60+
| ((uint32_t)GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos)
61+
| ((uint32_t)GPIO_PIN_CNF_PULL_Pullup << GPIO_PIN_CNF_PULL_Pos)
62+
| ((uint32_t)GPIO_PIN_CNF_DRIVE_S0D1 << GPIO_PIN_CNF_DRIVE_Pos)
63+
| ((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
7064

71-
*pincfg_reg(_uc_pinSDA) = ((uint32_t)GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos)
72-
| ((uint32_t)GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos)
73-
| ((uint32_t)GPIO_PIN_CNF_PULL_Pullup << GPIO_PIN_CNF_PULL_Pos)
74-
| ((uint32_t)GPIO_PIN_CNF_DRIVE_S0D1 << GPIO_PIN_CNF_DRIVE_Pos)
75-
| ((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
65+
portSDA->PIN_CNF[pinSDA] = ((uint32_t)GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos)
66+
| ((uint32_t)GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos)
67+
| ((uint32_t)GPIO_PIN_CNF_PULL_Pullup << GPIO_PIN_CNF_PULL_Pos)
68+
| ((uint32_t)GPIO_PIN_CNF_DRIVE_S0D1 << GPIO_PIN_CNF_DRIVE_Pos)
69+
| ((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
7670

7771
_p_twim->FREQUENCY = TWIM_FREQUENCY_FREQUENCY_K100;
7872
_p_twim->ENABLE = (TWIM_ENABLE_ENABLE_Enabled << TWIM_ENABLE_ENABLE_Pos);
@@ -88,17 +82,23 @@ void TwoWire::begin(uint8_t address) {
8882
//Slave mode
8983
master = false;
9084

91-
*pincfg_reg(_uc_pinSCL) = ((uint32_t)GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos)
92-
| ((uint32_t)GPIO_PIN_CNF_INPUT_Disconnect << GPIO_PIN_CNF_INPUT_Pos)
93-
| ((uint32_t)GPIO_PIN_CNF_PULL_Disabled << GPIO_PIN_CNF_PULL_Pos)
94-
| ((uint32_t)GPIO_PIN_CNF_DRIVE_S0S1 << GPIO_PIN_CNF_DRIVE_Pos)
95-
| ((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
96-
97-
*pincfg_reg(_uc_pinSDA) = ((uint32_t)GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos)
98-
| ((uint32_t)GPIO_PIN_CNF_INPUT_Disconnect << GPIO_PIN_CNF_INPUT_Pos)
99-
| ((uint32_t)GPIO_PIN_CNF_PULL_Disabled << GPIO_PIN_CNF_PULL_Pos)
100-
| ((uint32_t)GPIO_PIN_CNF_DRIVE_S0S1 << GPIO_PIN_CNF_DRIVE_Pos)
101-
| ((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
85+
NRF_GPIO_Type* portSCL = digitalPinToPort(_uc_pinSCL);
86+
NRF_GPIO_Type* portSDA = digitalPinToPort(_uc_pinSDA);
87+
uint32_t pinSCL = digitalPinToPin(_uc_pinSCL);
88+
uint32_t pinSDA = digitalPinToPin(_uc_pinSDA);
89+
90+
91+
portSCL->PIN_CNF[pinSCL] = ((uint32_t)GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos)
92+
| ((uint32_t)GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos)
93+
| ((uint32_t)GPIO_PIN_CNF_PULL_Pullup << GPIO_PIN_CNF_PULL_Pos)
94+
| ((uint32_t)GPIO_PIN_CNF_DRIVE_S0D1 << GPIO_PIN_CNF_DRIVE_Pos)
95+
| ((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
96+
97+
portSDA->PIN_CNF[pinSDA] = ((uint32_t)GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos)
98+
| ((uint32_t)GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos)
99+
| ((uint32_t)GPIO_PIN_CNF_PULL_Pullup << GPIO_PIN_CNF_PULL_Pos)
100+
| ((uint32_t)GPIO_PIN_CNF_DRIVE_S0D1 << GPIO_PIN_CNF_DRIVE_Pos)
101+
| ((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
102102

103103
_p_twis->ADDRESS[0] = address;
104104
_p_twis->CONFIG = TWIS_CONFIG_ADDRESS0_Msk;

variants/BBCmicrobitV2/variant.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@ extern "C"
1919
#define NUM_ANALOG_INPUTS (7)
2020
#define NUM_ANALOG_OUTPUTS (0)
2121

22+
// LEDs
23+
24+
#define PIN_LED (13)
25+
#define LED_BUILTIN PIN_LED
26+
2227
// Buttons
2328

2429
#define PIN_BUTTON_A (5)

0 commit comments

Comments
 (0)