1
|
New Analog API Proposal
|
2
|
|
3
|
***averaging stuff***
|
4
|
new analog init function
|
5
|
- don't worry about speeding up analog loop for now (do that separately)
|
6
|
- will take the number of samples for averaging as an argument
|
7
|
- make old init function a wrapper for this one that uses a default value
|
8
|
- will not handle multiple buffer lengths
|
9
|
- initialize averaging buffers
|
10
|
- bitfield (or some other way) to determine which ADC ports to average
|
11
|
|
12
|
new "get" functions
|
13
|
- take an argument to specify average or immediate value
|
14
|
- if averaging, perform division on running sum
|
15
|
- deprecate the old get
|
16
|
|
17
|
#define some new error codes
|
18
|
- out of range
|
19
|
- trying to average, but not enough history values
|
20
|
|
21
|
in the interrupt
|
22
|
- fill the ring buffer with the newest reading and add the current readings for the average
|
23
|
- don't do the divide for the averaging - do this in get
|
24
|
|
25
|
update rangefinder code accordingly so that people can get averaged rangefinders
|
26
|
|
27
|
***new analog interrupt***
|
28
|
init function
|
29
|
-takes a bitfield of different analog fields to read
|
30
|
-analog loop only reads those analog fields
|
31
|
|
32
|
new "get" function
|
33
|
-keep it fresh - return an error if somebody tries to read an old value twice
|
34
|
|
35
|
function to update the bitfield dynamically
|
36
|
|
37
|
eliminate bom_refresh - put bom refresh in the analog loop when the bom bit is asserted in the bitfield
|
38
|
|
39
|
#define some new error codes
|
40
|
- analog port not initialized yet
|
41
|
- not reading from that analog - bit not asserted in bitfield
|
42
|
- reading is not fresh - this particular reading has already been read
|
43
|
|
44
|
no need to start and stop the loop anymore - deprecate the old functions
|
45
|
- to do this, user should set all bits in bitfield to 0
|
46
|
|
47
|
issues to consider:
|
48
|
- concurrency issue if user disables a port that is currently being read (is this serious?)
|