@@ -30,6 +30,7 @@ extern "C" {
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