init
Dependencies: SDFileSystem mbed-rtos mbed wave_player
Revision 1:4fd1a4e54648, committed 21 months ago
- Comitter:
- emanuel22e
- Date:
- Fri Oct 14 19:36:37 2022 +0000
- Parent:
- 0:47321458789d
- Commit message:
- init
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Fri Oct 14 19:33:05 2022 +0000
+++ b/main.cpp Fri Oct 14 19:36:37 2022 +0000
@@ -1,15 +1,71 @@
+//#include "mbed.h"
+//#include "rtos.h"
+//#include "wave_player.h"
+//#include "SDFileSystem.h"
+//SDFileSystem sd(p5, p6, p7, p8, "sd");
+//PwmOut red(p21);
+//PwmOut green(p22);
+//PwmOut blue(p23);
+//AnalogOut speaker(p18);
+//wave_player waver(&speaker);
+//Thread thread1;
+//Thread thread2;
+//void t1() {
+// red = 0;
+// green = 0;
+// blue = 0;
+// while (1) {
+// red = 1;
+// green = 0;
+// blue = 0;
+// Thread::wait(300);
+// red = 0;
+// green = 1;
+// blue = 0;
+// Thread::wait(300);
+// red = 0;
+// green = 0;
+// blue = 1;
+// Thread::wait(300);
+//
+// }
+//void t2() {
+// FILE *wave_file;
+// //open wav file and play it
+// wave_file=fopen("/sd/thread_sound.wav","r");
+// waver.play(wave_file);
+// fclose(wave_file);
+// //end of program
+// Thread::wait(500);
+//}
+//
+//int main() {
+// thread1.start(t1);
+// thread2.start(t2);
+// while(1) {
+//
+// }
+//}
+
+
#include "mbed.h"
#include "rtos.h"
#include "wave_player.h"
#include "SDFileSystem.h"
+#include "uLCD_4DGL.h"
SDFileSystem sd(p5, p6, p7, p8, "sd");
PwmOut red(p21);
PwmOut green(p22);
PwmOut blue(p23);
-AnalogOut speaker(p18);
-wave_player waver(&speaker);
-Thread thread1;
+PwmOut speaker(p26);
+Serial bluemod(p13,p14);
+//wave_player waver(&speaker);
+uLCD_4DGL uLCD(p28,p27,p11);
+//Thread thread1;
Thread thread2;
+Thread thread3;
+Thread thread4;
+Mutex u_mutex;
void t1() {
red = 0;
green = 0;
@@ -27,22 +83,156 @@
green = 0;
blue = 1;
Thread::wait(300);
-
}
+}
void t2() {
+ /*
FILE *wave_file;
//open wav file and play it
- wave_file=fopen("/sd/thread_sound.wav","r");
+ wave_file=fopen("/sd/mario_sound.wav","r");
waver.play(wave_file);
fclose(wave_file);
//end of program
Thread::wait(500);
+ */
+ speaker.period(1.0/500.0); // 500hz period
+ speaker =0.5; //50% duty cycle - max volume
+ Thread::wait(3);
+ speaker=0.0; // turn off audio
+ Thread::wait(2);
}
-
+void t3() {
+ while (1) {
+ u_mutex.lock();
+ uLCD.text_width(2); //4X size text
+ uLCD.text_height(2);
+ u_mutex.unlock();
+ u_mutex.lock();
+ uLCD.color(RED);
+ u_mutex.unlock();
+ for (int i=10; i>=0; --i) {
+ u_mutex.lock();
+ uLCD.locate(1,2);
+ uLCD.printf("%2D",i);
+ u_mutex.unlock();
+ Thread::wait(750);
+ }
+ //u_mutex.unlock();
+ Thread::wait(1000);
+ }
+}
+void t4() {
+ while (1) {
+ u_mutex.lock();
+ uLCD.text_width(2); //4X size text
+ uLCD.text_height(2);
+ u_mutex.unlock();
+ u_mutex.lock();
+ uLCD.color(GREEN);
+ u_mutex.unlock();
+ for (int i=10; i>=0; --i) {
+ u_mutex.lock();
+ uLCD.locate(1,4);
+ uLCD.printf("%2D",i);
+ u_mutex.unlock();
+ Thread::wait(1000);
+ }
+ //u_mutex.unlock();
+ Thread::wait(1200);
+ }
+}
int main() {
- thread1.start(t1);
+ //thread1.start(t1);
thread2.start(t2);
+ thread3.start(t3);
+ thread4.start(t4);
+ char bred=0;
+ char bgreen=0;
+ char bblue=0;
+ red = green = blue = 0;
while(1) {
+ if (bluemod.readable()) {
+ u_mutex.lock();
+
+ if (bluemod.getc()=='!') {
+ if (bluemod.getc()=='C') { //color data packet
+ bred = bluemod.getc(); // RGB color values
+ bgreen = bluemod.getc();
+ bblue = bluemod.getc();
+ if (bluemod.getc()==char(~('!' + 'C' + bred + bgreen + bblue))) { //checksum OK?
+ red = bred/255.0; //send new color to RGB LED PWM outputs
+ green = bgreen/255.0;
+ blue = bblue/255.0;
+ }
+ }
+ }
+ u_mutex.unlock();
+ }
+
+
+
+
+
+
+
+ /*
+ red = 0;
+ green = 0;
+ blue = 0;
+ while (1) {
+ red = 1;
+ green = 0;
+ blue = 0;
+ Thread::wait(300);
+ //wait(.3);
+ red = 0;
+ green = 1;
+ blue = 0;
+ Thread::wait(300);
+ //wait(.3);
+ red = 0;
+ green = 0;
+ blue = 1;
+ Thread::wait(300);
+ //wait(.3);
+
+ }
+ */
+ /*
+ FILE *wave_file;
+ //open wav file and play it
+ wave_file=fopen("/sd/mario_sound.wav","r");
+ waver.play(wave_file);
+ fclose(wave_file);
+ //end of program
+ Thread::wait(500);
+ */
+
+ /*
+ u_mutex.lock();
+ uLCD.text_width(2); //4X size text
+ uLCD.text_height(2);
+ u_mutex.unlock();
+ u_mutex.lock();
+ uLCD.color(RED);
+ u_mutex.unlock();
+ for (int i=10; i>=0; --i) {
+ u_mutex.lock();
+ uLCD.locate(1,2);
+ uLCD.printf("%2D",i);
+ u_mutex.unlock();
+ Thread::wait(750);
+ }
+ Thread::wait(1000);
+ */
+
+ /*
+ speaker.period(1.0/500.0); // 500hz period
+ speaker =0.5; //50% duty cycle - max volume
+ Thread::wait(10);
+ speaker=0.0; // turn off audio
+ Thread::wait(10);
+ */
}
}