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: mbed wave_player mbed-rtos 4DGL-uLCD-SE SDFileSystem X_NUCLEO_53L0A1 HC_SR04_Ultrasonic_Library
part4.h
00001 #include "mbed.h" 00002 #include "rtos.h" 00003 #include "SDFileSystem.h" 00004 #include "wave_player.h" 00005 #include "uLCD_4DGL.h" 00006 #include "RGBLed.h" 00007 #include "Color.h" 00008 00009 #define _pink Color(255.0, 0.0, (119.0/255.0)) 00010 #define _red Color(255.0, 0.0, (119.0/255.0)) 00011 #define _orange Color(255.0/255.0, 98.0/255.0, 0.0) 00012 #define _yellow Color(255.0/255.0, 166.0/255.0, 0.0) 00013 #define _light_green Color(187.0/255.0, 255.0/255.0, 0.0) 00014 #define _green Color(17.0/255.0, 201.0/255.0, 0.0) 00015 #define _teal Color(0.0, 255.0/255.0, 170.0/255.0) 00016 #define _light_blue Color(0.0, 255.0/255.0, 247.0/255.0) 00017 #define _blue Color(0.0, 128.0/255.0, 255.0/255.0) 00018 #define _purple Color(106.0/255.0, 0.0, 255.0/255.0) 00019 00020 RGBLed led = RGBLed(p21, p22, p23); 00021 00022 Color colors[] = { _red, _pink, _orange, _yellow }; 00023 00024 void led_handler() { 00025 // Color colors[] = { _red, _pink, _orange, _yellow }; 00026 00027 Color c = colors[0]; 00028 int i = 0; 00029 while (1) { 00030 // led.write(c.red, c.green, c.blue); 00031 //i = (i + 1) % 4; 00032 // Color colors[] = { _red, _pink, _orange, _yellow }; 00033 led.write(1.0, 1.0, 1.0); 00034 00035 Thread::wait(500); 00036 } 00037 } 00038 00039 SDFileSystem sd(p5, p6, p7, p8, "sd"); 00040 AnalogOut DACout(p18); 00041 wave_player waver(&DACout); 00042 00043 void audio_handler() { 00044 FILE *wave_file; 00045 printf("\n\n\nHello, wave world!\n"); 00046 wave_file=fopen("/sd/sample.wav","r"); 00047 while (1) { 00048 waver.play(wave_file); 00049 Thread::wait(1); 00050 } 00051 fclose(wave_file); 00052 } 00053 00054 Mutex lcd_mutex; 00055 uLCD_4DGL lcd(p28,p27,p30); 00056 00057 void lcd1_handler() { 00058 int i = 0; 00059 while (1) { 00060 lcd_mutex.lock(); 00061 lcd.locate(0, 0); 00062 lcd.printf("Elapsed time: %d s", i); 00063 lcd_mutex.unlock(); 00064 00065 i++; 00066 Thread::wait(1000); 00067 } 00068 } 00069 00070 void lcd2_handler() { 00071 while (1) { 00072 lcd_mutex.lock(); 00073 00074 lcd_mutex.unlock(); 00075 Thread::wait(0); 00076 } 00077 } 00078 00079 void changeColor(char c) { 00080 if (c == 'r') { 00081 colors[0] = _red; 00082 colors[1] = _pink; 00083 colors[2] = _orange; 00084 colors[3] = _yellow; 00085 } else if (c == 'b') { 00086 colors[0] = _teal; 00087 colors[1] = _light_blue; 00088 colors[2] = _blue; 00089 colors[3] = _purple; 00090 } else if (c == 'g') { 00091 colors[0] = _yellow; 00092 colors[1] = _light_green; 00093 colors[2] = _green; 00094 colors[3] = _teal; 00095 } 00096 } 00097 00098 Thread led_thread, audio_thread, lcd1_thread, lcd2_thread; 00099 00100 00101 void run_part4() { 00102 led_thread.start(led_handler); 00103 // audio_thread.start(audio_handler); 00104 // lcd1_thread.start(lcd1_handler); 00105 // lcd2_thread.start(lcd2_handler); 00106 00107 //while (1) { 00108 // if (dev.readable()) { 00109 // changeColor(dev.getc()); 00110 // } 00111 // } 00112 while (1) ; 00113 00114 }
Generated on Wed Jul 13 2022 11:06:00 by
1.7.2