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"); + }