Skip to content

Commit 56375f5

Browse files
committed
Merge branch 'master' of github.com:adafruit/Adafruit_nRF52_Arduino
2 parents 6478ca1 + c1567c8 commit 56375f5

File tree

5 files changed

+59
-4
lines changed

5 files changed

+59
-4
lines changed

cores/nRF5/HardwarePWM.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,14 +78,20 @@ void HardwarePWM::setClockDiv(uint8_t div)
7878
*/
7979
bool HardwarePWM::addPin(uint8_t pin)
8080
{
81-
VERIFY( isPinValid(pin) && (_count < MAX_CHANNELS) );
81+
VERIFY( isPinValid(pin) && (_count <= MAX_CHANNELS) );
8282

8383
// Check if pin is already configured
8484
for(uint8_t i=0; i<_count; i++)
8585
{
8686
if (_pwm->PSEL.OUT[i] == pin) return true;
8787
}
8888

89+
if ((_count >= MAX_CHANNELS))
90+
{
91+
//Pin not already configured, but this HardwarePWM is full
92+
return false;
93+
}
94+
8995
pinMode(pin, OUTPUT);
9096
digitalWrite(pin, LOW);
9197

cores/nRF5/Uart.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ void Uart::end()
186186

187187
void Uart::flush()
188188
{
189+
rxBuffer.clear();
189190
}
190191

191192
void Uart::IrqHandler()

cores/nRF5/wiring_analog.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,13 @@ typedef enum _eAnalogReference
6161
*/
6262
extern void analogReference( eAnalogReference ulMode ) ;
6363

64+
/*
65+
* \brief Configures the oversampling amount used to sample analog input.
66+
*
67+
* \param ulOversampling Should be set to 1, 2, 4, 8, 16, 32, 64, 128 or 256.
68+
*/
69+
extern void analogOversampling( uint32_t ulOversampling );
70+
6471
/*
6572
* \brief Writes an analog value (PWM wave) to a pin.
6673
*

cores/nRF5/wiring_analog_nRF52.c

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ extern "C" {
3131
static uint32_t saadcReference = SAADC_CH_CONFIG_REFSEL_Internal;
3232
static uint32_t saadcGain = SAADC_CH_CONFIG_GAIN_Gain1_6;
3333

34+
static bool saadcBurst = SAADC_CH_CONFIG_BURST_Disabled;
35+
3436
#if 0 // Note: Adafruit use seperated HardwarePWM class
3537
#define PWM_COUNT 3
3638

@@ -124,6 +126,44 @@ void analogReference( eAnalogReference ulMode )
124126
}
125127
}
126128

129+
void analogOversampling( uint32_t ulOversampling )
130+
{
131+
saadcBurst = SAADC_CH_CONFIG_BURST_Enabled;
132+
133+
switch (ulOversampling) {
134+
case 0:
135+
case 1:
136+
saadcBurst = SAADC_CH_CONFIG_BURST_Disabled;
137+
NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Bypass;
138+
return;
139+
break;
140+
case 2:
141+
NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over2x;
142+
break;
143+
case 4:
144+
NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over4x;
145+
break;
146+
case 8:
147+
NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over8x;
148+
break;
149+
case 16:
150+
NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over16x;
151+
break;
152+
case 32:
153+
NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over32x;
154+
break;
155+
case 64:
156+
NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over64x;
157+
break;
158+
case 128:
159+
NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over128x;
160+
break;
161+
case 256:
162+
NRF_SAADC->OVERSAMPLE = SAADC_OVERSAMPLE_OVERSAMPLE_Over256x;
163+
break;
164+
}
165+
}
166+
127167
uint32_t analogRead( uint32_t ulPin )
128168
{
129169
uint32_t pin = SAADC_CH_PSELP_PSELP_NC;
@@ -200,7 +240,8 @@ uint32_t analogRead( uint32_t ulPin )
200240
| ((saadcGain << SAADC_CH_CONFIG_GAIN_Pos) & SAADC_CH_CONFIG_GAIN_Msk)
201241
| ((saadcReference << SAADC_CH_CONFIG_REFSEL_Pos) & SAADC_CH_CONFIG_REFSEL_Msk)
202242
| ((SAADC_CH_CONFIG_TACQ_3us << SAADC_CH_CONFIG_TACQ_Pos) & SAADC_CH_CONFIG_TACQ_Msk)
203-
| ((SAADC_CH_CONFIG_MODE_SE << SAADC_CH_CONFIG_MODE_Pos) & SAADC_CH_CONFIG_MODE_Msk);
243+
| ((SAADC_CH_CONFIG_MODE_SE << SAADC_CH_CONFIG_MODE_Pos) & SAADC_CH_CONFIG_MODE_Msk)
244+
| ((saadcBurst << SAADC_CH_CONFIG_BURST_Pos) & SAADC_CH_CONFIG_BURST_Msk);
204245
NRF_SAADC->CH[0].PSELN = pin;
205246
NRF_SAADC->CH[0].PSELP = pin;
206247

libraries/Bluefruit52Lib/src/services/BLEHidAdafruit.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,9 @@ uint8_t const hid_report_descriptor[] =
7070
// 6-byte Keycodes
7171
HID_USAGE_PAGE (HID_USAGE_PAGE_KEYBOARD),
7272
HID_USAGE_MIN ( 0 ),
73-
HID_USAGE_MAX ( 101 ),
73+
HID_USAGE_MAX ( 255 ),
7474
HID_LOGICAL_MIN ( 0 ),
75-
HID_LOGICAL_MAX ( 101 ),
75+
HID_LOGICAL_MAX ( 255 ),
7676

7777
HID_REPORT_COUNT ( 6 ),
7878
HID_REPORT_SIZE ( 8 ),

0 commit comments

Comments
 (0)