V001. 2017_11_30 10:21 Working code from Tuesday's lab session.

Dependencies:   mbed-rtos mbed

Fork of 2017_11_28_ELEC347_Coursework by Chris Hills

DSP Coursework ELEC347 2017-2018 Group members: Matthew Thewsey, Thomas Morris, Samuel Waggett, Christopher Hills .

main.cpp

Committer:
chills
Date:
2017-12-06
Revision:
17:5774c69932e7
Parent:
15:97b4fa094a48
Child:
18:b442994a01fd

File content as of revision 17:5774c69932e7:

#include "mbed.h"
#include "rtos.h"
#include "Filter.hpp"

unsigned short ADC_DATA;

//Init  values for difference equation
//MBED Class Instances follows
DigitalOut SampLED(LED1);               //Digital Output  (GREEN LED is PB_3, D13 You can use an Oscilloscope on This pin to confirm sample rate)

//Analog Inputs
AnalogIn  Ain(PA_1);                    //Analog Input (Signal Input 0 to +3 Volts)
AnalogOut Aout(PA_4);                   //Analog Output (Signal Input 0 to +3 Volts)

//Declare Threads
Thread t1;

    
//Declare Ticker Rates
float sample_rate = (1.0/35000);        //Rate of sampling

//Initial Input Value
float input = 0.0;


//Declare Filter
FILTER BP_filter(48000,10000,16,2);        //Create object of type Filter(Fs,Fo,Boost,Q)


//Forward Declarations
void sampler(void);


int main()
{
    BP_filter.Define_Filter();          //Define the filter variables
    t1.start(sampler);                  //Start the Sampler timed interrupt
}

void sampler(void)
{
    while(1)
    {
        SampLED = 1;                                //LED Indicates start of sampling
        input = Ain;                                //Takes ADC input  as a Varaible type float
        BP_filter.setvalue(input);                  //Passes the input value to the filter
        Aout = BP_filter.getvalue();                //Collects the output from the filter and outputs it
        SampLED = 0;                                //LED Indicates end of sampling
        Thread::wait(sample_rate*1000);             //Delay before taking the next sample
    }
}