init
Dependencies: SDFileSystem mbed-rtos mbed wave_player
main.cpp
- Committer:
- emanuel22e
- Date:
- 21 months ago
- Revision:
- 1:4fd1a4e54648
- Parent:
- 0:47321458789d
File content as of revision 1:4fd1a4e54648:
//#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);
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;
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/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);
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);
*/
}
}