robobuggy / arduino / RadioBuggyMega / filter.h @ 0c80370b
History | View | Annotate | Download (540 Bytes)
1 | 6b9a71b0 | unknown | /**
|
---|---|---|---|
2 | * @file filter.h
|
||
3 | * @brief Filter to filter data from rc_available
|
||
4 | *
|
||
5 | * @author: Audrey Yeoh (ayeoh)
|
||
6 | *
|
||
7 | */
|
||
8 | |||
9 | #ifndef _FILTER_H_
|
||
10 | #define _FILTER_H_
|
||
11 | |||
12 | #ifdef __cplusplus
|
||
13 | extern "C"{ |
||
14 | #endif
|
||
15 | |||
16 | 0c80370b | Matt Sebek | #define FILTER_LEN 5 // Averaging window size |
17 | 6b9a71b0 | unknown | |
18 | 0c80370b | Matt Sebek | struct filter_state {
|
19 | int prev_values[FILTER_LEN];
|
||
20 | char started;
|
||
21 | int pos; // next index to update |
||
22 | }; |
||
23 | |||
24 | |||
25 | void filter_init(struct filter_state *state); |
||
26 | |||
27 | int filter_loop(struct filter_state *state, int val); // returns the int that has been filtered |
||
28 | 6b9a71b0 | unknown | |
29 | |||
30 | #ifdef __cplusplus
|
||
31 | } |
||
32 | #endif
|
||
33 | |||
34 | #endif
|
||
35 | |||
36 | 0c80370b | Matt Sebek |