Robot that currently does nothing

Dependencies:   4DGL-uLCD-SE SDFileSystem ShiftBrite mbed-rtos mbed wave_player Motor

main.cpp

Committer:
CRaslawski
Date:
2017-03-15
Revision:
4:589e4a2028a7
Parent:
3:86cc67dbf731
Child:
5:6ca141fc6c4e

File content as of revision 4:589e4a2028a7:

#include "mbed.h"
#include "rtos.h"
#include "uLCD_4DGL.h"
//#include "ShiftBrite.h"
#include "SDFileSystem.h"
#include "wave_player.h"

Mutex mutex;    //
Mutex mutex2;   //
DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);
Thread thread1;
Thread thread2;
Thread thread3;
Thread thread4;
//DigitalOut latch(p15);
//DigitalOut enable(p16);
SPI spi(p11, p12, p13);
//uLCD_4DGL uLCD(p28,p27,p29); //(p27, p28, p30);    //tx, rx, rst
uLCD_4DGL uLCD(p28, p27, p30); 
//ShiftBrite myBrite(p15,p16,spi); //latch, enable, spi
SDFileSystem sd(p5, p6, p7, p8, "sd"); //SD card
AnalogOut DACout(p18);      //must be p18
//RawSerial BT(p9, p10);  //bluetooth pinout
FILE *wave_file = NULL;         //global bc its gotta be changed by Main while running in child thread
wave_player waver(&DACout);     //create wave_player object for speaker

void LCD_thread1() {
    while(1){    
        mutex.lock();
        uLCD.filled_circle(64, 64, 12, 0xFF0000);
        mutex.unlock();
        wait(.5);
        mutex.lock();
        uLCD.filled_circle(64, 64, 12, 0x0000FF);
        mutex.unlock();
        wait(.5);
    }     
} 
void sound_thread(){
    while(1) {
        //FILE *wave_file;
        wave_file=fopen("/sd/vacuum.wav","r");    
        if (wave_file == NULL){
               led1=led2=led3=led4 = 1;     // if file read error, all LEDs ON
        }
        waver.play(wave_file);
        fclose(wave_file);  
    }
}
int main() {
    //thread1.start(IR_thread); // read in IR data
    thread2.start(LCD_thread1);   
    //thread3.start(Motor_thread);
    thread4.start(sound_thread);
    
    while(1){   // poor coding practice, I know
    
    }
    // use mutex to lock getc(), printf(), scanf()
    // don't unlock until you've checked that it's readable()  

}