hope this works

Dependencies:   4DGL-uLCD-SE PinDetect mbed-rtos mbed

Committer:
jbaker66
Date:
Mon Feb 29 18:04:52 2016 +0000
Revision:
0:4322dd0d6f9f
hey george;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jbaker66 0:4322dd0d6f9f 1 #include "mbed.h"
jbaker66 0:4322dd0d6f9f 2 #include "rtos.h"
jbaker66 0:4322dd0d6f9f 3 #include "uLCD_4DGL.h"
jbaker66 0:4322dd0d6f9f 4 #include "Speaker.h"
jbaker66 0:4322dd0d6f9f 5 #include "PinDetect.h"
jbaker66 0:4322dd0d6f9f 6
jbaker66 0:4322dd0d6f9f 7 int * frequency = NULL;
jbaker66 0:4322dd0d6f9f 8 enum Color { red, green, blue };
jbaker66 0:4322dd0d6f9f 9 Color myCol = red;
jbaker66 0:4322dd0d6f9f 10
jbaker66 0:4322dd0d6f9f 11 uLCD_4DGL uLCD(p28,p27,p30); // serial tx, serial rx, reset pin
jbaker66 0:4322dd0d6f9f 12 PwmOut RGBLED_r(p23);
jbaker66 0:4322dd0d6f9f 13 PwmOut RGBLED_g(p24);
jbaker66 0:4322dd0d6f9f 14 PwmOut RGBLED_b(p25);
jbaker66 0:4322dd0d6f9f 15 Speaker mySpeaker(p21); //setup speaker thread;
jbaker66 0:4322dd0d6f9f 16 PinDetect up(p20);
jbaker66 0:4322dd0d6f9f 17 PinDetect left(p19);
jbaker66 0:4322dd0d6f9f 18 PinDetect down(p17);
jbaker66 0:4322dd0d6f9f 19 PinDetect right(p16);
jbaker66 0:4322dd0d6f9f 20 PinDetect center(p15);
jbaker66 0:4322dd0d6f9f 21
jbaker66 0:4322dd0d6f9f 22 Serial pc(USBTX, USBRX);
jbaker66 0:4322dd0d6f9f 23 void center_button(void);
jbaker66 0:4322dd0d6f9f 24
jbaker66 0:4322dd0d6f9f 25 // Thread 1
jbaker66 0:4322dd0d6f9f 26 // print counter into first line and wait for 1 s
jbaker66 0:4322dd0d6f9f 27 //void uLCD_thread(void const *args)
jbaker66 0:4322dd0d6f9f 28 //{
jbaker66 0:4322dd0d6f9f 29 // while(true) { // thread loop
jbaker66 0:4322dd0d6f9f 30 // uLCD.locate(0,0);
jbaker66 0:4322dd0d6f9f 31 // uLCD.printf("Frequency: %d",*frequency);
jbaker66 0:4322dd0d6f9f 32 // uLCD.locate(3,0);
jbaker66 0:4322dd0d6f9f 33 // //uLCD.printf("Color: %d", (int)Color));
jbaker66 0:4322dd0d6f9f 34 // Thread::wait(1000);
jbaker66 0:4322dd0d6f9f 35 // }
jbaker66 0:4322dd0d6f9f 36 //}
jbaker66 0:4322dd0d6f9f 37
jbaker66 0:4322dd0d6f9f 38 // Thread 2
jbaker66 0:4322dd0d6f9f 39 // print counter into third line and wait for 0.5s
jbaker66 0:4322dd0d6f9f 40 void sound_thread(void const *args)
jbaker66 0:4322dd0d6f9f 41 {
jbaker66 0:4322dd0d6f9f 42 while(true) { // thread loop
jbaker66 0:4322dd0d6f9f 43 Thread::signal_wait(0x2);
jbaker66 0:4322dd0d6f9f 44 mySpeaker.PlayNote(*frequency, .1, .8);
jbaker66 0:4322dd0d6f9f 45 }
jbaker66 0:4322dd0d6f9f 46 }
jbaker66 0:4322dd0d6f9f 47
jbaker66 0:4322dd0d6f9f 48 // Thread 3
jbaker66 0:4322dd0d6f9f 49 // RGB LED
jbaker66 0:4322dd0d6f9f 50 //void RGB_thread(void const *args)
jbaker66 0:4322dd0d6f9f 51 //{
jbaker66 0:4322dd0d6f9f 52 // while(true) { // thread loop
jbaker66 0:4322dd0d6f9f 53 // Thread::signal_wait(0x3); // wait 0.5s
jbaker66 0:4322dd0d6f9f 54 // switch (myCol) {
jbaker66 0:4322dd0d6f9f 55 // case red :
jbaker66 0:4322dd0d6f9f 56 // RGBLED_r = .5;
jbaker66 0:4322dd0d6f9f 57 // RGBLED_g = 0;
jbaker66 0:4322dd0d6f9f 58 // RGBLED_b = 0;
jbaker66 0:4322dd0d6f9f 59 // break;
jbaker66 0:4322dd0d6f9f 60 // case green :
jbaker66 0:4322dd0d6f9f 61 // RGBLED_r = 0;
jbaker66 0:4322dd0d6f9f 62 // RGBLED_g = 0.5;
jbaker66 0:4322dd0d6f9f 63 // RGBLED_b = 0;
jbaker66 0:4322dd0d6f9f 64 // break;
jbaker66 0:4322dd0d6f9f 65 // case blue :
jbaker66 0:4322dd0d6f9f 66 // RGBLED_r = 0;
jbaker66 0:4322dd0d6f9f 67 // RGBLED_g = 0;
jbaker66 0:4322dd0d6f9f 68 // RGBLED_b = 0.5;
jbaker66 0:4322dd0d6f9f 69 // break;
jbaker66 0:4322dd0d6f9f 70 // }
jbaker66 0:4322dd0d6f9f 71 // }
jbaker66 0:4322dd0d6f9f 72 //}
jbaker66 0:4322dd0d6f9f 73
jbaker66 0:4322dd0d6f9f 74
jbaker66 0:4322dd0d6f9f 75
jbaker66 0:4322dd0d6f9f 76 //
jbaker66 0:4322dd0d6f9f 77
jbaker66 0:4322dd0d6f9f 78
jbaker66 0:4322dd0d6f9f 79
jbaker66 0:4322dd0d6f9f 80 //Thread t1(uLCD_thread);
jbaker66 0:4322dd0d6f9f 81
jbaker66 0:4322dd0d6f9f 82 //Thread t3(RGB_thread);
jbaker66 0:4322dd0d6f9f 83
jbaker66 0:4322dd0d6f9f 84 int main() {
jbaker66 0:4322dd0d6f9f 85 Thread t2(sound_thread);
jbaker66 0:4322dd0d6f9f 86 pc.printf("Initializing...\n");
jbaker66 0:4322dd0d6f9f 87
jbaker66 0:4322dd0d6f9f 88
jbaker66 0:4322dd0d6f9f 89 *frequency = 440;
jbaker66 0:4322dd0d6f9f 90
jbaker66 0:4322dd0d6f9f 91
jbaker66 0:4322dd0d6f9f 92
jbaker66 0:4322dd0d6f9f 93
jbaker66 0:4322dd0d6f9f 94 // center.attach_asserted(&center_button);
jbaker66 0:4322dd0d6f9f 95 // center.setSampleFrequency();
jbaker66 0:4322dd0d6f9f 96 // up.attach_asserted(&up_button);
jbaker66 0:4322dd0d6f9f 97 // up.setSampleFrequency();
jbaker66 0:4322dd0d6f9f 98 // left.attach_asserted(&left_button);
jbaker66 0:4322dd0d6f9f 99 // left.setSampleFrequency();
jbaker66 0:4322dd0d6f9f 100 // down.attach_asserted(&down_button);
jbaker66 0:4322dd0d6f9f 101 // down.setSampleFrequency();
jbaker66 0:4322dd0d6f9f 102 // right.attach_asserted(&right_button);
jbaker66 0:4322dd0d6f9f 103 // right.setSampleFrequency();
jbaker66 0:4322dd0d6f9f 104
jbaker66 0:4322dd0d6f9f 105
jbaker66 0:4322dd0d6f9f 106
jbaker66 0:4322dd0d6f9f 107 while(true) { // thread loop
jbaker66 0:4322dd0d6f9f 108 pc.printf("is this even working?\n");
jbaker66 0:4322dd0d6f9f 109 Thread::wait(1000);
jbaker66 0:4322dd0d6f9f 110 t2.signal_set(0x2);
jbaker66 0:4322dd0d6f9f 111
jbaker66 0:4322dd0d6f9f 112 }
jbaker66 0:4322dd0d6f9f 113 }
jbaker66 0:4322dd0d6f9f 114
jbaker66 0:4322dd0d6f9f 115 //void center_button(void) {
jbaker66 0:4322dd0d6f9f 116 // t2.signal_set(0x2);
jbaker66 0:4322dd0d6f9f 117 //}
jbaker66 0:4322dd0d6f9f 118 //void up_button(void) {
jbaker66 0:4322dd0d6f9f 119 // *frequency += 50;
jbaker66 0:4322dd0d6f9f 120 //}
jbaker66 0:4322dd0d6f9f 121 //void down_button(void) {
jbaker66 0:4322dd0d6f9f 122 // *frequency -= 50;
jbaker66 0:4322dd0d6f9f 123 //}
jbaker66 0:4322dd0d6f9f 124 //void left_button(void) {
jbaker66 0:4322dd0d6f9f 125 // switch (myCol) {
jbaker66 0:4322dd0d6f9f 126 // case red :
jbaker66 0:4322dd0d6f9f 127 // myCol = blue;
jbaker66 0:4322dd0d6f9f 128 // break;
jbaker66 0:4322dd0d6f9f 129 // case green :
jbaker66 0:4322dd0d6f9f 130 // myCol = red;
jbaker66 0:4322dd0d6f9f 131 // break;
jbaker66 0:4322dd0d6f9f 132 // case blue :
jbaker66 0:4322dd0d6f9f 133 // myCol = green;
jbaker66 0:4322dd0d6f9f 134 // break;
jbaker66 0:4322dd0d6f9f 135 // }
jbaker66 0:4322dd0d6f9f 136 // t3.signal_set(0x3);
jbaker66 0:4322dd0d6f9f 137 //}
jbaker66 0:4322dd0d6f9f 138 //void right_button(void) {
jbaker66 0:4322dd0d6f9f 139 // switch (myCol) {
jbaker66 0:4322dd0d6f9f 140 // case red :
jbaker66 0:4322dd0d6f9f 141 // myCol = green;
jbaker66 0:4322dd0d6f9f 142 // break;
jbaker66 0:4322dd0d6f9f 143 // case green :
jbaker66 0:4322dd0d6f9f 144 // myCol = blue;
jbaker66 0:4322dd0d6f9f 145 // break;
jbaker66 0:4322dd0d6f9f 146 // case blue :
jbaker66 0:4322dd0d6f9f 147 // myCol = red;
jbaker66 0:4322dd0d6f9f 148 // break;
jbaker66 0:4322dd0d6f9f 149 // }
jbaker66 0:4322dd0d6f9f 150 // t3.signal_set(0x3);
jbaker66 0:4322dd0d6f9f 151 //}
jbaker66 0:4322dd0d6f9f 152
jbaker66 0:4322dd0d6f9f 153
jbaker66 0:4322dd0d6f9f 154