f
Dependencies: Speaker mbed wave_player mbed-rtos 4DGL-uLCD-SE LCD_fonts SDFileSystem_OldbutworkswithRTOS
main.cpp
00001 00002 #include "mbed.h" 00003 #include "rtos.h" 00004 #include "uLCD_4DGL.h" 00005 #include "stdio.h" 00006 #include "Speaker.h" 00007 #include "banner.h" 00008 #include "SDFileSystem.h" 00009 #include "wave_player.h" 00010 00011 00012 RawSerial pc(USBTX, USBRX); 00013 RawSerial dev(p28,p27); 00014 AnalogOut DACout(p18); 00015 wave_player waver(&DACout); 00016 SDFileSystem sd(p5, p6, p7, p8, "sd"); //SD card 00017 uLCD_4DGL uLCD(p13,p14,p11); 00018 PwmOut RGBLED_r(p23); 00019 PwmOut RGBLED_g(p24); 00020 PwmOut RGBLED_b(p25); 00021 BusOut leds(LED1,LED2,LED3,LED4); 00022 Mutex lcd_mutex; 00023 00024 //Thread screen; 00025 //Thread lights; 00026 //Thread audio; 00027 //Thread count; 00028 00029 void dev_recv() 00030 { 00031 while(dev.readable()) { 00032 pc.putc(dev.getc()); 00033 } 00034 } 00035 00036 void pc_recv() 00037 { 00038 while(pc.readable()) { 00039 dev.putc(pc.getc()); 00040 } 00041 } 00042 00043 00044 00045 void thread1(void const *args) 00046 { 00047 int i=0; 00048 int x; 00049 // while(true) { // thread loop 00050 if(i==0){ 00051 x=0xFF0000; 00052 } 00053 else if (i==1){ 00054 x=0xFFFFFF; 00055 } 00056 else{ 00057 x=0x0000FF; 00058 } 00059 lcd_mutex.lock(); 00060 uLCD.filled_rectangle(0,0,128, 100, x); 00061 lcd_mutex.unlock(); 00062 i++; 00063 i=i%3; 00064 Thread::wait(100); 00065 // } 00066 } 00067 00068 00069 void thread5(void const *args) 00070 { 00071 int i = 0; 00072 // while(true) { 00073 // thread loop 00074 if(i==0){ 00075 RGBLED_r = 1; 00076 RGBLED_g = 0; 00077 RGBLED_b = 0; 00078 } 00079 else if(i==1){ 00080 RGBLED_r = 1; 00081 RGBLED_g = 1; 00082 RGBLED_b = 1; 00083 } 00084 else{ 00085 RGBLED_r = 0; 00086 RGBLED_g = 0; 00087 RGBLED_b = 1; 00088 } 00089 i++; 00090 i=i%3; 00091 Thread::wait(673); // wait 1.5s 00092 // } 00093 } 00094 //// Thread 6 00095 //// Speaker 00096 void thread6(void const *args) 00097 { 00098 // while(true) { // thread loop 00099 FILE *wave_file; 00100 printf("\r\n\nHello, wave world!\n\r"); 00101 Thread::wait(1000); 00102 wave_file=fopen("/sd/banner2.wav","r"); 00103 if(wave_file==NULL) printf("file open error!\n\n\r"); 00104 waver.play(wave_file); 00105 fclose(wave_file); 00106 // } 00107 00108 } 00109 00110 void thread7(void const *args) 00111 { 00112 int i = 0; 00113 while(true) { // thread loop 00114 i++; 00115 printf("thread 1: %d\n", i); 00116 Thread::wait(1000); // wait 0.25s 00117 } 00118 } 00119 00120 00121 //void bluetooth(void const *args){ 00122 // while(1){ 00123 // if(dev.getc()=='a'){ 00124 // Thread t6(thread6); 00125 // } 00126 // if(dev.getc()=='s'){ 00127 // Thread t1(thread1); 00128 // } 00129 // if(dev.getc()=='l'){ 00130 // Thread t5(thread5); 00131 // } 00132 // if(dev.getc()=='c'){ 00133 // Thread t7(thread7); 00134 // } 00135 // Thread::wait(100); 00136 // } 00137 //} 00138 int main() 00139 { 00140 // int j; 00141 uLCD.cls(); 00142 00143 pc.baud(9600); 00144 dev.baud(9600); 00145 00146 pc.attach(&pc_recv, Serial::RxIrq); 00147 dev.attach(&dev_recv, Serial::RxIrq); 00148 // Thread blue(bluetooth); 00149 while(1) { 00150 if(dev.getc()=='a'){ 00151 Thread audio(thread6); 00152 } 00153 if(dev.getc()=='s'){ 00154 Thread screen(thread1); 00155 } 00156 if(dev.getc()=='l'){ 00157 Thread light(thread5); 00158 } 00159 if(dev.getc()=='c'){ 00160 Thread count(thread7); 00161 } 00162 // sleep(); 00163 } 00164 // Thread t1(thread1); //start thread1 00165 //Thread t2(thread2); //start thread2 00166 //Thread t3(thread3); //start thread3 00167 //Thread t4(thread4); //start thread4 00168 // Thread t5(thread5); //start thread5 00169 // Thread t6(thread6); //start thread6 00170 // Thread t7(thread7); //start thread7 00171 00172 }
Generated on Fri Jul 29 2022 08:02:59 by 1.7.2