|
19 | 19 |
|
20 | 20 | #if defined(NRF52) || defined(NRF52_SERIES)
|
21 | 21 |
|
22 |
| -#include "nrf.h" |
| 22 | +#include <nrf.h> |
23 | 23 |
|
24 |
| -#include "Arduino.h" |
25 |
| -#include "wiring_private.h" |
| 24 | +#include <Arduino.h> |
| 25 | +#include <wiring_private.h> |
26 | 26 |
|
27 | 27 | #ifdef __cplusplus
|
28 | 28 | extern "C" {
|
29 | 29 | #endif
|
30 | 30 |
|
31 | 31 | static uint32_t saadcReference = SAADC_CH_CONFIG_REFSEL_Internal;
|
32 | 32 | static uint32_t saadcGain = SAADC_CH_CONFIG_GAIN_Gain1_6;
|
| 33 | +static uint32_t saadcSampleTime = SAADC_CH_CONFIG_TACQ_3us; |
33 | 34 |
|
34 | 35 | static bool saadcBurst = SAADC_CH_CONFIG_BURST_Disabled;
|
35 | 36 |
|
@@ -140,6 +141,28 @@ void analogOversampling( uint32_t ulOversampling )
|
140 | 141 | }
|
141 | 142 | }
|
142 | 143 |
|
| 144 | +void analogSampleTime( uint8_t sTime) |
| 145 | +{ |
| 146 | + saadcSampleTime = SAADC_CH_CONFIG_TACQ_3us; // default is 3 us |
| 147 | + switch (sTime) { |
| 148 | + case 5: |
| 149 | + saadcSampleTime = SAADC_CH_CONFIG_TACQ_5us; |
| 150 | + break; |
| 151 | + case 10: |
| 152 | + saadcSampleTime = SAADC_CH_CONFIG_TACQ_10us; |
| 153 | + break; |
| 154 | + case 15: |
| 155 | + saadcSampleTime = SAADC_CH_CONFIG_TACQ_15us; |
| 156 | + break; |
| 157 | + case 20: |
| 158 | + saadcSampleTime = SAADC_CH_CONFIG_TACQ_20us; |
| 159 | + break; |
| 160 | + case 40: |
| 161 | + saadcSampleTime = SAADC_CH_CONFIG_TACQ_40us; |
| 162 | + break; |
| 163 | + } |
| 164 | +} |
| 165 | + |
143 | 166 | static uint32_t analogRead_internal( uint32_t psel )
|
144 | 167 | {
|
145 | 168 | uint32_t saadcResolution;
|
@@ -171,7 +194,7 @@ static uint32_t analogRead_internal( uint32_t psel )
|
171 | 194 | | ((SAADC_CH_CONFIG_RESP_Bypass << SAADC_CH_CONFIG_RESN_Pos) & SAADC_CH_CONFIG_RESN_Msk)
|
172 | 195 | | ((saadcGain << SAADC_CH_CONFIG_GAIN_Pos) & SAADC_CH_CONFIG_GAIN_Msk)
|
173 | 196 | | ((saadcReference << SAADC_CH_CONFIG_REFSEL_Pos) & SAADC_CH_CONFIG_REFSEL_Msk)
|
174 |
| - | ((SAADC_CH_CONFIG_TACQ_3us << SAADC_CH_CONFIG_TACQ_Pos) & SAADC_CH_CONFIG_TACQ_Msk) |
| 197 | + | ((saadcSampleTime << SAADC_CH_CONFIG_TACQ_Pos) & SAADC_CH_CONFIG_TACQ_Msk) |
175 | 198 | | ((SAADC_CH_CONFIG_MODE_SE << SAADC_CH_CONFIG_MODE_Pos) & SAADC_CH_CONFIG_MODE_Msk)
|
176 | 199 | | ((saadcBurst << SAADC_CH_CONFIG_BURST_Pos) & SAADC_CH_CONFIG_BURST_Msk);
|
177 | 200 | NRF_SAADC->CH[0].PSELN = psel;
|
|
0 commit comments