blob: 8f3c4e50d326d457dde788167a619cd914bd1b30 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#ifndef SENSOR_H_
#define SENSOR_H_
#include <stdint.h>
struct sensor {
/* ADMUX */
uint8_t adc_mux;
/* The sensor value offset, in millivolts.
* This value is subtracted from the measured voltage before
* processing. */
uint16_t mv_offset;
/* The Full Scale Output (maximum) output value of the sensor,
* in millivolts. */
uint16_t full_scale_mv;
/* The pressure at Full Scale Output, in millibar. */
uint16_t full_scale_mbar;
};
#define DEFINE_SENSOR(name, mux, _mv_offset, _full_scale_mv, _full_scale_mbar) \
struct sensor name = { \
.adc_mux = mux, \
.mv_offset = _mv_offset, \
.full_scale_mv = _full_scale_mv, \
.full_scale_mbar = _full_scale_mbar, \
}
void sensor_trigger_read(struct sensor *s);
void sensor_init(struct sensor *s);
/* Callback for sensor value reporting. */
extern void sensor_result(struct sensor *s,
uint16_t millibar_result_value);
#endif /* SENSOR_H_ */
|