Appiko
led_sense.c
1 
19 #include "led_sense.h"
20 #include "nrf.h"
21 #include "nrf_assert.h"
22 #include "simple_adc.h"
23 #include "hal_gpio.h"
24 
25 static uint32_t led_pin, sense_pin, off_val;
26 
27 void led_sense_init(uint32_t led_out_pin, uint32_t led_sense_analog_pin,
28  uint32_t led_off_val)
29 {
30  ASSERT(led_pin < 32);
31  ASSERT(led_sense_analog_pin < SAADC_CH_PSELP_PSELP_VDD);
32 
33  led_pin = led_out_pin;
34  off_val = led_off_val;
35  sense_pin = led_sense_analog_pin;
36 }
37 
38 void led_sense_cfg_input(bool is_input_on)
39 {
40  if(is_input_on)
41  {
42  hal_gpio_cfg(led_pin,
43  GPIO_PIN_CNF_DIR_Input,
44  GPIO_PIN_CNF_INPUT_Disconnect,
45  GPIO_PIN_CNF_PULL_Disabled,
46  GPIO_PIN_CNF_DRIVE_S0S1,
47  GPIO_PIN_CNF_SENSE_Disabled);
48  }
49  else
50  {
51  hal_gpio_cfg_output(led_pin, off_val);
52  }
53 }
54 
55 uint32_t led_sense_get(void)
56 {
57  return simple_adc_get_value(SIMPLE_ADC_GAIN1_6, sense_pin);
58 }
uint32_t simple_adc_get_value(simple_adc_gain_t gain, simple_adc_input_t pin)
This function initializes the SAADC peripheral, gets an ADC value and then deinitializes The function...
Definition: simple_adc.c:25
void led_sense_init(uint32_t led_out_pin, uint32_t led_sense_analog_pin, uint32_t led_off_val)
Initialize the LED light sensing module.
Definition: led_sense.c:27
#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
void led_sense_cfg_input(bool is_input_on)
Configure the LED as either an light sensing input device or as an light emitting actuation device.
Definition: led_sense.c:38
Gain factor 1/6.
Definition: simple_adc.h:70
uint32_t led_sense_get(void)
Get the light value by measuring the voltage a LED's anode.
Definition: led_sense.c:55