hope this works
Dependencies: 4DGL-uLCD-SE PinDetect mbed-rtos mbed
main.cpp@0:4322dd0d6f9f, 2016-02-29 (annotated)
- Committer:
- jbaker66
- Date:
- Mon Feb 29 18:04:52 2016 +0000
- Revision:
- 0:4322dd0d6f9f
hey george;
Who changed what in which revision?
User | Revision | Line number | New 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(¢er_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 |