46 lines
901 B
C
46 lines
901 B
C
/**** 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;
|
|
}
|