/**** Includes ****/ #include "board/utils/utils.h" #include "board/ain.h" #include "analog.h" /**** Private definitions ****/ /**** Private constants ****/ /**** Private variables ****/ /**** Private function declarations ****/ static uint8_t ain_mapping(uint8_t analog_ch, uint8_t* ain_ch); /**** Public function definitions ****/ uint16_t analog_ch_get(uint8_t analog_ch) { uint8_t ain_ch; // Get channel config if(ain_mapping(analog_ch, &ain_ch)) return 0; // Read input as mV uint16_t ch_mv = bsp_ain_read(ain_ch); // Return result return ch_mv; } /**** Private function definitions ****/ static uint8_t ain_mapping(uint8_t analog_ch, uint8_t* ain_ch) { switch(analog_ch) { case ANALOG_1: // Pot *ain_ch = BSP_AIN2; return 0; case ANALOG_2: // Mode *ain_ch = BSP_AIN1; return 0; default: //Invalid channel *ain_ch = BSP_AIN5; return 1; } return 1; }