hope this works
Dependencies: 4DGL-uLCD-SE PinDetect mbed-rtos mbed
main.cpp
- Committer:
- jbaker66
- Date:
- 2016-02-29
- Revision:
- 0:4322dd0d6f9f
File content as of revision 0:4322dd0d6f9f:
#include "mbed.h" #include "rtos.h" #include "uLCD_4DGL.h" #include "Speaker.h" #include "PinDetect.h" int * frequency = NULL; enum Color { red, green, blue }; Color myCol = red; uLCD_4DGL uLCD(p28,p27,p30); // serial tx, serial rx, reset pin PwmOut RGBLED_r(p23); PwmOut RGBLED_g(p24); PwmOut RGBLED_b(p25); Speaker mySpeaker(p21); //setup speaker thread; PinDetect up(p20); PinDetect left(p19); PinDetect down(p17); PinDetect right(p16); PinDetect center(p15); Serial pc(USBTX, USBRX); void center_button(void); // Thread 1 // print counter into first line and wait for 1 s //void uLCD_thread(void const *args) //{ // while(true) { // thread loop // uLCD.locate(0,0); // uLCD.printf("Frequency: %d",*frequency); // uLCD.locate(3,0); // //uLCD.printf("Color: %d", (int)Color)); // Thread::wait(1000); // } //} // Thread 2 // print counter into third line and wait for 0.5s void sound_thread(void const *args) { while(true) { // thread loop Thread::signal_wait(0x2); mySpeaker.PlayNote(*frequency, .1, .8); } } // Thread 3 // RGB LED //void RGB_thread(void const *args) //{ // while(true) { // thread loop // Thread::signal_wait(0x3); // wait 0.5s // switch (myCol) { // case red : // RGBLED_r = .5; // RGBLED_g = 0; // RGBLED_b = 0; // break; // case green : // RGBLED_r = 0; // RGBLED_g = 0.5; // RGBLED_b = 0; // break; // case blue : // RGBLED_r = 0; // RGBLED_g = 0; // RGBLED_b = 0.5; // break; // } // } //} // //Thread t1(uLCD_thread); //Thread t3(RGB_thread); int main() { Thread t2(sound_thread); pc.printf("Initializing...\n"); *frequency = 440; // center.attach_asserted(¢er_button); // center.setSampleFrequency(); // up.attach_asserted(&up_button); // up.setSampleFrequency(); // left.attach_asserted(&left_button); // left.setSampleFrequency(); // down.attach_asserted(&down_button); // down.setSampleFrequency(); // right.attach_asserted(&right_button); // right.setSampleFrequency(); while(true) { // thread loop pc.printf("is this even working?\n"); Thread::wait(1000); t2.signal_set(0x2); } } //void center_button(void) { // t2.signal_set(0x2); //} //void up_button(void) { // *frequency += 50; //} //void down_button(void) { // *frequency -= 50; //} //void left_button(void) { // switch (myCol) { // case red : // myCol = blue; // break; // case green : // myCol = red; // break; // case blue : // myCol = green; // break; // } // t3.signal_set(0x3); //} //void right_button(void) { // switch (myCol) { // case red : // myCol = green; // break; // case green : // myCol = blue; // break; // case blue : // myCol = red; // break; // } // t3.signal_set(0x3); //}