adfdadf
Dependencies: SDFileSystem mbed-rtos mbed wave_player 4DGL-uLCD-SE ShiftBrite
Fork of rtos_mutex by
Diff: main.cpp
- Revision:
- 6:91595eac48f4
- Parent:
- 1:0f886ffbe0c1
- Child:
- 7:2122726e9b46
--- a/main.cpp Fri Feb 26 16:20:20 2016 +0000
+++ b/main.cpp Fri Feb 26 18:05:50 2016 +0000
@@ -1,8 +1,87 @@
#include "mbed.h"
#include "rtos.h"
+#include "SDFileSystem.h"
+#include "wave_player.h"
+//additional for Lab4
+//#include "PinDetect.h"
+#include "uLCD_4DGL.h"
+#include <vector>
+#include <string>
+#include "ShiftBrite.h"
+
+uLCD_4DGL uLCD(p28,p27,p29); // create a global LCD object
+//uLCD_4DGL uLCD(p28, p27, p29);
+SDFileSystem sd(p5, p6, p7, p8, "sd"); //SD card
+DigitalIn detectSD(p12); //connect CD
+AnalogOut DACout(p18); //speaker
+wave_player waver(&DACout); //wave player library
+//DigitalOut latch(p15);
+//DigitalOut enable(p16);
+SPI spi(p11, p12, p13);
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+ShiftBrite myBrite(p15,p16,spi); //latch, enable, spi
+
Mutex stdio_mutex;
+//shiftbrite
+/*void RGB_LED(int red, int green, int blue) {
+ unsigned int low_color=0;
+ unsigned int high_color=0;
+ high_color=(blue<<4)|((red&0x3C0)>>6);
+ low_color=(((red&0x3F)<<10)|(green));
+ spi.write(high_color);
+ spi.write(low_color);
+ latch=1;
+ latch=0;
+}
+*/
+
+void wav_thread(void const *args) {
+ FILE *wave_file;
+ printf("\n\n\nHello, wave world!\n");
+ wave_file=fopen("/sd/beethoven.wav","r");
+ //while(1){
+ waver.play(wave_file);
+ //}
+ fclose(wave_file);
+}
+
+void shift_thread(void const *args){
+
+int r,g,b;
+r=g=b=50;
+
+ while(1) {
+ myBrite.Write(255,255,255);
+ Thread::wait(500);
+ myBrite.Write(0,0,255);
+ Thread::wait(500);
+ myBrite.Write(0,255,0);
+ Thread::wait(500);
+ myBrite.Write(255,0,0);
+ Thread::wait(500);
+
+ myBrite.Brightness(r,g,b);
+ if(r<1023)
+ r+=50;
+ else
+ r=50;
+ g=b=r;
+
+ }
+
+
+}
+
+void led2_thread(void const *args) {
+ while (true) {
+ led2 = !led2;
+ Thread::wait(1000);
+ }
+}
+
void notify(const char* name, int state) {
stdio_mutex.lock();
printf("%s: %d\n\r", name, state);
@@ -17,8 +96,19 @@
}
int main() {
+ Thread wav_thread(wav_thread);
+ Thread thread(led2_thread);
+ Thread shift_thread(shift_thread);
+
+
+ while (true) {
+ led1 = !led1;
+ Thread::wait(500);
+ }
+
Thread t2(test_thread, (void *)"Th 2");
Thread t3(test_thread, (void *)"Th 3");
test_thread((void *)"Th 1");
+
}
