Appiko
hal_saadc.h
1 
30 #ifndef CODEBASE_HAL_HAL_SAADC_H_
31 #define CODEBASE_HAL_HAL_SAADC_H_
32 
33 #include "nrf_saadc.h"
34 #include "nrf_assert.h"
35 #include "hal_pin_analog_input.h"
36 
37 #ifdef NRF51
38 #error SAADC peripheral is not present in the nRF51 SoC
39 #endif
40 
45 #define saadc_channel_init nrf_saadc_channel_init
46 
53 __STATIC_INLINE void saadc_continuous_sampling_rate_set(uint32_t sampling_rate_div)
54 {
55  ASSERT((sampling_rate_div>=80) && (sampling_rate_div <= 2047));
56 
57  NRF_SAADC->SAMPLERATE = (sampling_rate_div << SAADC_SAMPLERATE_CC_Pos) |
58  (SAADC_SAMPLERATE_MODE_Timers << SAADC_SAMPLERATE_MODE_Pos);
59 }
60 
64 __STATIC_INLINE void saadc_sampling_task_mode_set(void)
65 {
66  NRF_SAADC->SAMPLERATE = (0 << SAADC_SAMPLERATE_CC_Pos) |
67  (SAADC_SAMPLERATE_MODE_Task << SAADC_SAMPLERATE_MODE_Pos);
68 }
69 
73 __STATIC_INLINE void saadc_channel_uninit(uint8_t channel)
74 {
75  nrf_saadc_channel_input_set(channel, NRF_SAADC_INPUT_DISABLED, NRF_SAADC_INPUT_DISABLED);
76 }
77 
78 
79 #endif /* CODEBASE_HAL_HAL_SAADC_H_ */
80 
__STATIC_INLINE void saadc_channel_uninit(uint8_t channel)
Function to uninitializes a SAADC channel.
Definition: hal_saadc.h:73
__STATIC_INLINE void saadc_continuous_sampling_rate_set(uint32_t sampling_rate_div)
Function for configuring the use of the internal sample-rate timer and its interval.
Definition: hal_saadc.h:53
#define ASSERT(expression)
Macro for runtime assertion of an expression. If the expression is false the assert_nrf_callback func...
Definition: nrf_assert.h:48
__STATIC_INLINE void saadc_sampling_task_mode_set(void)
Function that sets the sampling to be started with SAMPLING task.
Definition: hal_saadc.h:64