Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: 4DGL-uLCD-SE SDFileSystem mbed-rtos mbed wave_player
Fork of ECE4180_Lab3_Threads_Updated by
main.cpp
- Committer:
- SeanBuckingham
- Date:
- 2016-10-03
- Revision:
- 7:bf1bb278bdec
- Parent:
- 3:c92e21f305d8
- Child:
- 8:17ac4f255e4b
File content as of revision 7:bf1bb278bdec:
#include "mbed.h"
#include "rtos.h"
#include "uLCD_4DGL.h"
#include "LSM9DS1.h"
#include "SDFileSystem.h"
#include "wave_player.h"
/* shiftbright instantiation*/
DigitalOut red(p23);
DigitalOut blue(p21);
DigitalOut green(p22);
/*uLCD instantiation*/
uLCD_4DGL uLCD(p28,p27,p29); // serial tx, serial rx, reset pin;
Mutex mutex;
/* wave player instantiation*/
SDFileSystem sd(p5, p6, p7, p8, "sd"); //SD card
AnalogOut DACout(p18);
wave_player waver(&DACout);
DigitalOut led1(LED1);
DigitalOut led2(LED2);
/* makes different colored squares the same color as the shiftbright*/
void lcd_thread1(void const *args) {
int color = 0xFFC0CB; //initially pink
while (true) {
if (blue == 1) { color = 0x0000FF; }
else if (red === 1) { color = 0xFF0000; }
else if (green == 1) { color = 0x008000; }
mutex.lock();
uLCD.filled_rectangle(5, 64, 84, 25, color);
mutex.unlock();
}
}
/*makes different colored circle every time the bell sound sounds*/
void lcd_thread2(void const *args) {
int color2 = 0xFFC0CB;
}
/*play wav file on sd and when playing led1 turns on*/
void wav_thread3(void const *args) {
while (true) {
FILE *wave_file;
wave_file=fopen("/sd/wavfiles/Store_Door_Chime-Mike_Koenig-570742973.wav","r");
waver.play(wave_file);
led1 = 1;
fclose(wave_file);
led1 = 0;
Thread::wait(500);
}
}
void light_thread4(void const *args) {
while (true) {
red = 0;
blue = 1;
green = 0;
wait(1);
red = 0;
blue = 0;
green = 1;
wait(1);
red = 1;
blue = 0;
green = 0;
wait(1);
}
}
int main() {
//Thread thread(thread1);
/*while (true) {
led1 = !led1;
Thread::wait(500);
}*/
}
