|
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