RX Family ADC Module Using Firmware Integration Technology
R01AN1666EJ0220 Rev. 2.20 Page 17 of 74
Dec 01, 2016
typedef struct st_adc_data
{
uint16_t chan[ADC_REG_ARRAY_MAX]; // chnls/indexes used depends upon MCU
uint16_t temp;
uint16_t volt;
uint16_t dbltrig; // Not used on RX63x
} adc_data_t;
2.10.5 RX130 Interface Types (r_s12ad_rx130_if.h)
/***** ADC_OPEN() ARGUMENT DEFINITIONS *****/
typedef enum e_adc_mode
{
ADC_MODE_SS_TEMPERATURE, // single scan temperature sensor
ADC_MODE_SS_INT_REF_VOLT, // single scan internal ref voltage sensor
ADC_MODE_SS_ONE_CH, // single scan one channel
ADC_MODE_SS_MULTI_CH, // 1 trigger source, scan multiple channels
ADC_MODE_CONT_ONE_CH, // continuous scan one channel
ADC_MODE_CONT_MULTI_CH, // continuous scan multiple channels
ADC_MODE_SS_ONE_CH_DBLTRIG, // on even triggers save to ADDBLDR &
interrupt
ADC_MODE_SS_MULTI_CH_GROUPED, // 2 trigger sources, scan multiple channels
ADC_MODE_SS_MULTI_CH_GROUPED_DBLTRIG_A,
ADC_MODE_MAX
} adc_mode_t;
typedef enum e_adc_align
{
ADC_ALIGN_RIGHT = 0x0000,
ADC_ALIGN_LEFT = 0x8000
} adc_align_t;
typedef enum e_adc_add // Addition and averaging of sampled data.
{
ADC_ADD_OFF = 0, // addition is turned off for chans/sensors
ADC_ADD_TWO_SAMPLES = 1, // Two samples are added,Register
ADADC.ADC[1,0]
ADC_ADD_THREE_SAMPLES = 2, // Three samples are added
ADC_ADD_FOUR_SAMPLES = 3, // Four samples are added
ADC_ADD_SIXTEEN_SAMPLES = 5, // Sixteen samples are added
ADC_ADD_AVG_2_SAMPLES = 0x81, // average 2 samples
ADC_ADD_AVG_4_SAMPLES = 0x83, // average 4 samples
} adc_add_t;
typedef enum e_adc_clear
{
ADC_CLEAR_AFTER_READ_OFF = 0x0000,
ADC_CLEAR_AFTER_READ_ON = 0x0020
} adc_clear_t;
typedef enum e_adc_trig // trigger sources (set to TRSA bit or TRSB bit)
{
ADC_TRIG_ASYNC_ADTRG = 0, // external asynchronous trigger; not for Group
// modes nor double trigger modes
ADC_TRIG_SYNC_TRG0AN = 1, // MTU0 TRGA
ADC_TRIG_SYNC_TRG0BN = 2, // MTU0 TRGB
ADC_TRIG_SYNC_TRGAN_OR_UDF4N = 3, // MTUx TRGA or MTU4 underflow
//(complementary PWM mode)