Graphic Equalizer with uLCD
Dependencies: 4DGL-uLCD-SE MSGEQ7 SDFileSystem mbed-rtos mbed wave_player
main.cpp
- Committer:
- amussa
- Date:
- 2017-03-16
- Revision:
- 0:ed16e4b21d4c
File content as of revision 0:ed16e4b21d4c:
#include "mbed.h" #include "rtos.h" #include "SDFileSystem.h" #include "uLCD_4DGL.h" #include "wave_player.h" #include "MSGEQ7.h" #define MAX 700 MSGEQ7 eq(p13, p14, p15); SDFileSystem sd(p5, p6, p7, p8, "sd"); uLCD_4DGL uLCD(p9,p10,p17); Mutex lcd_mutex; AnalogOut DACout(p18); wave_player waver(&DACout); Serial pc(USBTX, USBRX); Mutex serialm; PwmOut red(p21); PwmOut green(p22); PwmOut blue(p23); Thread music; Thread image; Thread info; Thread Lighting; void music_thread(){ FILE *wave_file; wave_file=fopen("/sd/mydir/fys.wav","r"); waver.play(wave_file); fclose(wave_file); Thread::wait(1000); } void image_thread(){ while(1){ lcd_mutex.lock(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x001E); uLCD.display_image(0,0); lcd_mutex.unlock(); } } void info_thread(){ while(1) { eq.readInt(MAX); lcd_mutex.lock(); for(int i = 0; i < 7; i++){ if (eq.freqDataInt[i] > 10){ uLCD.filled_circle(22+i*14, 106, 6, GREEN); } if (eq.freqDataInt[i] > 100){ uLCD.filled_circle(22+i*14, 92, 6, GREEN); } if (eq.freqDataInt[i] > 200){ uLCD.filled_circle(22+i*14, 78, 6, GREEN); } if (eq.freqDataInt[i] > 300){ uLCD.filled_circle(22+i*14, 64, 6, GREEN); } if (eq.freqDataInt[i] > 400){ uLCD.filled_circle(22+i*14, 50, 6, GREEN); } if (eq.freqDataInt[i] > 500){ uLCD.filled_circle(22+i*14, 36, 6, GREEN); } if (eq.freqDataInt[i] > 600){ uLCD.filled_circle(22+i*14, 22, 6, GREEN); } } lcd_mutex.unlock(); } } void lighting_thread(){ while(1){ red = 0.5; green = 0; blue = 0; Thread::wait(638.297872); red = 0; green = 0.5; blue = 0; Thread::wait(638.297872); red = 0; green = 0; blue = 0.5; Thread::wait(638.297872); red = 0.5; green = 0.5; blue = 0; Thread::wait(638.297872); red = 0.5; blue = 0; green = 0.5; Thread::wait(638.297872); red = 0; blue = 0.5; green = 0.5; Thread::wait(638.297872); } } int main() { music.start(music_thread); image.start(image_thread); info.start(info_thread); Lighting.start(lighting_thread); }