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() }