blob: 4768c9531f89e330bd1fa2fcfe4f495ef8736f98 (
plain) (
blame)
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
|
#include "xc.h"
#define BUFFERSIZE 32
volatile int write = 0, numE = 0;
volatile unsigned int buffer[BUFFERSIZE];
void putVal(int newValue) { // add a new value to the buffer
buffer[write++] = newValue;
write %= BUFFERSIZE;
if (numE < BUFFERSIZE) {
++numE;
}
}
int getAvg() { // average all buffer values
unsigned long int sum = 0;
unsigned int avg;
int i;
for (i = 0; i < BUFFERSIZE; i++) {
sum += buffer[i];
}
avg = sum/numE;
return(avg);
}
void initBuffer() { // set all buffer values to zero
int i;
for(i = 0; i < BUFFERSIZE; i++) {
buffer[i] = 0;
}
}
|