41 #include "sensor_defs.h"
57 static inline void mcu_temp_trigger(
void *pctx,
bool one_shot)
61 ADMUX = (3<<REFS0) + (9<<MUX0);
63 ADCSRA = (1<<ADEN) + (1<<ADSC) + (4<<ADPS0);
79 for (i = 0; i < NB_AVG; i++)
81 while( (ADCSRA & (1<<ADSC)));
82 t_accu += (ADC - ((mcu_temp_ctx_t*)pctx)->adc_offset);
126 uint8_t rv =
sizeof(mcu_temp_ctx_t);
127 mcu_temp_ctx_t *pcfg;
132 pcfg = (mcu_temp_ctx_t *)pdata;
133 pcfg->g.id = SENSOR_MCU_T;
134 pcfg->g.f_trigger = mcu_temp_trigger;
136 pcfg->g.f_sleep = NULL;
141 ADCSRA = (1 << ADEN) | (1 << ADPS2) | (1 << ADPS1);
143 ADMUX = (1 << REFS1) | (1 << REFS0) | (1 << MUX3);
146 while( (ADCSRA & (1<<ADSC)));
148 while( (ADCSRA & (1<<ADSC)));
151 ((mcu_temp_ctx_t*) pcfg)->adc_offset = ADC;
static uint8_t sensor_create_mcu_temp(void *pdata, bool raw)
static uint8_t mcu_temp_get_val(void *pctx, uint8_t *pdata)
static uint8_t mcu_temp_get_raw(void *pctx, uint8_t *pdata)