ece 4180 lab 3
Dependencies: mbed wave_player mbed-rtos 4DGL-uLCD-SE SDFileSystem X_NUCLEO_53L0A1 HC_SR04_Ultrasonic_Library
part4.h
- Committer:
- emilywilson
- Date:
- 2020-02-27
- Revision:
- 4:1ef667567942
- Parent:
- 2:4845e2dae429
File content as of revision 4:1ef667567942:
#include "mbed.h"
#include "rtos.h"
#include "SDFileSystem.h"
#include "wave_player.h"
#include "uLCD_4DGL.h"
#include "RGBLed.h"
#include "Color.h"
#define _pink Color(255.0, 0.0, (119.0/255.0))
#define _red Color(255.0, 0.0, (119.0/255.0))
#define _orange Color(255.0/255.0, 98.0/255.0, 0.0)
#define _yellow Color(255.0/255.0, 166.0/255.0, 0.0)
#define _light_green Color(187.0/255.0, 255.0/255.0, 0.0)
#define _green Color(17.0/255.0, 201.0/255.0, 0.0)
#define _teal Color(0.0, 255.0/255.0, 170.0/255.0)
#define _light_blue Color(0.0, 255.0/255.0, 247.0/255.0)
#define _blue Color(0.0, 128.0/255.0, 255.0/255.0)
#define _purple Color(106.0/255.0, 0.0, 255.0/255.0)
RGBLed led = RGBLed(p21, p22, p23);
Color colors[] = { _red, _pink, _orange, _yellow };
void led_handler() {
// Color colors[] = { _red, _pink, _orange, _yellow };
Color c = colors[0];
int i = 0;
while (1) {
// led.write(c.red, c.green, c.blue);
//i = (i + 1) % 4;
// Color colors[] = { _red, _pink, _orange, _yellow };
led.write(1.0, 1.0, 1.0);
Thread::wait(500);
}
}
SDFileSystem sd(p5, p6, p7, p8, "sd");
AnalogOut DACout(p18);
wave_player waver(&DACout);
void audio_handler() {
FILE *wave_file;
printf("\n\n\nHello, wave world!\n");
wave_file=fopen("/sd/sample.wav","r");
while (1) {
waver.play(wave_file);
Thread::wait(1);
}
fclose(wave_file);
}
Mutex lcd_mutex;
uLCD_4DGL lcd(p28,p27,p30);
void lcd1_handler() {
int i = 0;
while (1) {
lcd_mutex.lock();
lcd.locate(0, 0);
lcd.printf("Elapsed time: %d s", i);
lcd_mutex.unlock();
i++;
Thread::wait(1000);
}
}
void lcd2_handler() {
while (1) {
lcd_mutex.lock();
lcd_mutex.unlock();
Thread::wait(0);
}
}
void changeColor(char c) {
if (c == 'r') {
colors[0] = _red;
colors[1] = _pink;
colors[2] = _orange;
colors[3] = _yellow;
} else if (c == 'b') {
colors[0] = _teal;
colors[1] = _light_blue;
colors[2] = _blue;
colors[3] = _purple;
} else if (c == 'g') {
colors[0] = _yellow;
colors[1] = _light_green;
colors[2] = _green;
colors[3] = _teal;
}
}
Thread led_thread, audio_thread, lcd1_thread, lcd2_thread;
void run_part4() {
led_thread.start(led_handler);
// audio_thread.start(audio_handler);
// lcd1_thread.start(lcd1_handler);
// lcd2_thread.start(lcd2_handler);
//while (1) {
// if (dev.readable()) {
// changeColor(dev.getc());
// }
// }
while (1) ;
}