lora's drivers taken out of examples repo to make a smaller binary

Dependencies:   libxDot-mbed5

src/main.cpp

Committer:
guoxsharon
Date:
2019-11-21
Revision:
0:973a5bbb2a17
Child:
1:80bc4501abc5

File content as of revision 0:973a5bbb2a17:


#include "mbed.h"
#define u16_max 65526
AnalogIn mic(PB_0);
DigitalOut vcc(GPIO0);
Serial pc(UART_TX, UART_RX, 115200);
const int sampleTime = 50;
int micOut;
// Find the Peak-to-Peak Amplitude Function
int findPTPAmp(float* sampleArr){
// Time variables to find the peak-to-peak amplitude
   
   unsigned int PTPAmp = 0; 

// Signal variables to find the peak-to-peak amplitude
   unsigned int maxAmp = 0;
   unsigned int minAmp = 1023;

// Find the max and min of the mic output within the 50 ms timeframe
    for(int i=0; i<8000; i++)
   {
      if( sampleArr[i] < 1023) //prevent erroneous readings
      {
        if (sampleArr[i] > maxAmp)
        {
          maxAmp = sampleArr[i]; //save only the max reading
        }
        else if (sampleArr[i] < minAmp)
        {
          minAmp = sampleArr[i]; //save only the min reading
        }
      }
   }

  PTPAmp = maxAmp - minAmp; // (max amp) - (min amp) = peak-to-peak amplitude
  double micOut_Volts = (PTPAmp * 3.3) / 1024; // Convert ADC into voltage

  //Uncomment this line for help debugging (be sure to also comment out the VUMeter function)
  //Serial.println(PTPAmp); 

  //Return the PTP amplitude to use in the soundLevel function. 
  // You can also return the micOut_Volts if you prefer to use the voltage level.
  return PTPAmp;   
}

void record(float* sampleArr) {
    //record sound for 1 second
    for(int i=0; i<8000; i++) {
        sampleArr[i] = mic.read(); //put samples in array
        wait(0.000125f); //sample rate of 8000 Hz
    }  
}

int main(){
    float sampleArr[8000]; //used to store sound 
    pc.printf("\r\n Sparkfun MEM Microphone Test\n");   
    pc.printf("******************\n");
    vcc = 1;
    unsigned int val;
    int ptpAmp;
    while(1){
        wait(0.2); 
        record(sampleArr); 
        ptpAmp=findPTPAmp(sampleArr);
    }
}