Team S - EDP 2 / Mbed 2 deprecated signal_processing

Dependencies:   mbed

main.cpp

Committer:
2236693B
Date:
2018-02-14
Revision:
2:29c3d03c9231
Parent:
1:d1e89afbe50c
Child:
3:c9f4c9c84e36

File content as of revision 2:29c3d03c9231:

//Rango says, hey there Conor!

#include "mbed.h"

DigitalOut myled(LED1);
AnalogIn Ain(PTB1);

int const MAX_B = 10;
int const delta = 0.5;
int const AVG_LEN = 160;

int sample_buffer[2*MAX_B] = {};
int local_buffer[2*MAX_B] = {};
int avg_buffer[AVG_LEN] = {};
int read = 0;
int write = 0;

int avg_write = 0;

int avg_sum;
bool first ;

Ticker sampler;

void sampling () {
    unsigned int sample = Ain.read_u16();
    sample_buffer[write++] = sample;
    
    write = write%(2*MAX_B);
    
}

void avg() {  
    if (first) {
        for (int i =0; i <MAX_B; i++) {
            avg_buffer[avg_write] = local_buffer[i];
            avg_write = (++avg_write) % AVG_LEN;
            }
            if (write == 0) {
                first = false;
        }
    }
    else {
        for (int i =0; i <MAX_B; i++) {
            int data = local_buffer[i];
            avg_sum = avg_sum + data - avg_buffer[avg_write];
            
            avg_buffer[avg_write] = data;
            avg_write = (++avg_write) % AVG_LEN;     
            //get_trend();
            
        }
    }
        
}

void data_process() {
    avg();
}

int main() {
    sampler.attach(&sampling, 0.0125); //Sample at 80Hz 
    
    while(1) {
        if (write-read > MAX_B || read-write > MAX_B) {   // |write-read| > MAX_B/2
            for(int i = 0; i < MAX_B/2; i++) {
                local_buffer[i] =  sample_buffer[read];
                read = (++read) % MAX_B;
            }
        }
        data_process();
    }
}