Working reset, flipped logic

Dependencies:   SDFileSystem emic2 mbed-rtos mbed

Fork of BAT_senior_design_Nhi by BAT

main.cpp

Committer:
aismail1997
Date:
2017-10-18
Revision:
11:b302c71e300f
Parent:
10:21268d8bf979
Child:
12:7ff1f6022694
Child:
13:b80dde24e9bc

File content as of revision 11:b302c71e300f:

#include "mbed.h"
#include "rtos.h"
#include "wave_player.h"
#include "SDFileSystem.h"
#include "button.h"

// Azra

PwmOut myservo(p21);
DigitalIn pb1 (p20);
//AnalogIn linpot(p20);
Serial pc(USBTX, USBRX);
//DigitalOut myled(LED1);
SDFileSystem sd(p5, p6, p7, p8, "sd"); //SD card
AnalogOut DACout(p26);
wave_player waver(&DACout);
button button1(myservo, pb1);

// add start, mode, reset buttons
int start = 0;
int submit = 0;
// FIX THIS: button up: state = 2, button halfway: state = 0; button down: state = 1
int state = 2;

// FUNCTIONS
void playSound(wave_player waver)
{
    FILE *wave_file;
    wave_file=fopen("/sd/police_siren.wav","r");
    waver.play(wave_file);
    fclose(wave_file);
}

// THREADS
void button_thread()
{
    // button was up and is moving down, move servo in
    if (pb1 == 1 && state == 2) {
        button1.moveServoIn();
        state = 1;
    }
    // button was down and is being pushed again, move servo out
    if (pb1 == 1 && state == 1) {
        button1.moveServoOut();
        state = 2;
    }
}

void submit_thread()
{

}

void start_thread()
{
    // read pb_start
    // if 1
    start == 1;
    // else 0
}

int main()
{
    // SETUP
    // pull up the pushbutton to prevent bouncing
    pb1.mode(PullUp);
    wait(.001);
    // servo begins at 30 degrees
    // replace with a button setup function
    for(int i=0; i<=3; i++) {
        myservo = i/100.0;
        wait(0.01);
    }

    // MAIN THREAD
    while(true) {

        // start threads for reset, mode, start
        Thread t1(start_thread);
        // setup SDcard and Speaker
        
        // when started
        while (start == 0) {}
        Thread t2(button_thread);
        
        //Thread t3(submit_thread);

        // when submitted
        //while (submit == 0) {}


        // start button threads and submit thread
        // if submit close button threads and submit thread
        // check result, speaker result
        // save results

        // SD card code

        // speaker code

        // read linear potentiometer
        //if (linpot < 0.5) {
        //float potval = linpot;
        //pc.printf("linear pot: %f\n", potval);
    }
}