Jeffery Hurley
/
Asteroids
Simple starter skeleton for asteroids video game.
main.cpp@1:a6872783beca, 2019-02-23 (annotated)
- Committer:
- jhurley31
- Date:
- Sat Feb 23 21:38:45 2019 +0000
- Revision:
- 1:a6872783beca
- Parent:
- 0:0c450cb95a1e
- Child:
- 2:30020ddfccf6
Put in speaker code
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jhurley31 | 0:0c450cb95a1e | 1 | #include "mbed.h" |
jhurley31 | 0:0c450cb95a1e | 2 | #include "Speaker.h" |
jhurley31 | 0:0c450cb95a1e | 3 | #include "PinDetect.h" |
jhurley31 | 1:a6872783beca | 4 | #include "BuzzyGraphics.h" |
jhurley31 | 1:a6872783beca | 5 | #include "uLCD_4DGL.h" |
jhurley31 | 0:0c450cb95a1e | 6 | |
jhurley31 | 1:a6872783beca | 7 | //////////////////////////////////////// |
jhurley31 | 1:a6872783beca | 8 | // Setup instance of LCD display |
jhurley31 | 1:a6872783beca | 9 | uLCD_4DGL uLCD(p28, p27, p29); // serial tx, serial rx, reset pin; |
jhurley31 | 1:a6872783beca | 10 | //////////////////////////////////////// |
jhurley31 | 1:a6872783beca | 11 | // Setup instances of push button pins |
jhurley31 | 0:0c450cb95a1e | 12 | PinDetect pb_left(p16); |
jhurley31 | 0:0c450cb95a1e | 13 | PinDetect pb_right(p17); |
jhurley31 | 0:0c450cb95a1e | 14 | PinDetect pb_up(p18); |
jhurley31 | 1:a6872783beca | 15 | PinDetect pb_down(p19); |
jhurley31 | 1:a6872783beca | 16 | |
jhurley31 | 1:a6872783beca | 17 | Speaker SpeakerOut(p21); |
jhurley31 | 1:a6872783beca | 18 | ////////////////////////////////////////////////////////////////////// |
jhurley31 | 1:a6872783beca | 19 | // Interrupt routine |
jhurley31 | 1:a6872783beca | 20 | // used to output next analog sample whenever a timer interrupt occurs |
jhurley31 | 1:a6872783beca | 21 | void Sample_timer_interrupt(void) |
jhurley31 | 1:a6872783beca | 22 | { |
jhurley31 | 1:a6872783beca | 23 | // send next analog sample out to D to A |
jhurley31 | 1:a6872783beca | 24 | SpeakerOut.PlayNextValue(); |
jhurley31 | 1:a6872783beca | 25 | |
jhurley31 | 1:a6872783beca | 26 | } |
jhurley31 | 0:0c450cb95a1e | 27 | //--------------------------------------------------------------------------------------------------- |
jhurley31 | 0:0c450cb95a1e | 28 | // Callback routine is interrupt activated by a debounced pb_left hit |
jhurley31 | 0:0c450cb95a1e | 29 | void pb_left_hit_callback (void) |
jhurley31 | 0:0c450cb95a1e | 30 | { |
jhurley31 | 1:a6872783beca | 31 | // Tell Buzzy to go left |
jhurley31 | 0:0c450cb95a1e | 32 | //************* |
jhurley31 | 0:0c450cb95a1e | 33 | // Fill in needed Code here |
jhurley31 | 0:0c450cb95a1e | 34 | //************* |
jhurley31 | 0:0c450cb95a1e | 35 | |
jhurley31 | 0:0c450cb95a1e | 36 | } |
jhurley31 | 0:0c450cb95a1e | 37 | //--------------------------------------------------------------------------------------------------- |
jhurley31 | 0:0c450cb95a1e | 38 | // Callback routine is interrupt activated by a debounced pb_right hit |
jhurley31 | 0:0c450cb95a1e | 39 | void pb_right_hit_callback (void) |
jhurley31 | 0:0c450cb95a1e | 40 | { |
jhurley31 | 1:a6872783beca | 41 | // Tell Buzzy to go right |
jhurley31 | 1:a6872783beca | 42 | //************* |
jhurley31 | 1:a6872783beca | 43 | // Fill in needed Code here |
jhurley31 | 1:a6872783beca | 44 | //************* |
jhurley31 | 1:a6872783beca | 45 | |
jhurley31 | 1:a6872783beca | 46 | } |
jhurley31 | 1:a6872783beca | 47 | //--------------------------------------------------------------------------------------------------- |
jhurley31 | 1:a6872783beca | 48 | // Callback routine is interrupt activated by a debounced pb_up hit |
jhurley31 | 1:a6872783beca | 49 | void pb_up_hit_callback (void) |
jhurley31 | 1:a6872783beca | 50 | { |
jhurley31 | 1:a6872783beca | 51 | // Tell Buzzy to go up |
jhurley31 | 1:a6872783beca | 52 | //************* |
jhurley31 | 1:a6872783beca | 53 | // Fill in needed Code here |
jhurley31 | 1:a6872783beca | 54 | //************* |
jhurley31 | 1:a6872783beca | 55 | |
jhurley31 | 1:a6872783beca | 56 | } |
jhurley31 | 1:a6872783beca | 57 | //--------------------------------------------------------------------------------------------------- |
jhurley31 | 1:a6872783beca | 58 | // Callback routine is interrupt activated by a debounced pb_down hit |
jhurley31 | 1:a6872783beca | 59 | void pb_down_hit_callback (void) |
jhurley31 | 1:a6872783beca | 60 | { |
jhurley31 | 1:a6872783beca | 61 | // Tell Buzzy to go down |
jhurley31 | 0:0c450cb95a1e | 62 | //************* |
jhurley31 | 0:0c450cb95a1e | 63 | // Fill in needed Code here |
jhurley31 | 0:0c450cb95a1e | 64 | //************* |
jhurley31 | 0:0c450cb95a1e | 65 | |
jhurley31 | 0:0c450cb95a1e | 66 | } |
jhurley31 | 0:0c450cb95a1e | 67 | //--------------------------------------------------------------------------------------------------- |
jhurley31 | 0:0c450cb95a1e | 68 | int main() |
jhurley31 | 0:0c450cb95a1e | 69 | { |
jhurley31 | 1:a6872783beca | 70 | //setup push buttons |
jhurley31 | 1:a6872783beca | 71 | pb_left.mode(PullUp); |
jhurley31 | 1:a6872783beca | 72 | pb_right.mode(PullUp); |
jhurley31 | 1:a6872783beca | 73 | pb_up.mode(PullUp); |
jhurley31 | 1:a6872783beca | 74 | pb_down.mode(PullUp); |
jhurley31 | 1:a6872783beca | 75 | // Delay for initial pullup to take effect |
jhurley31 | 1:a6872783beca | 76 | wait(.01); |
jhurley31 | 1:a6872783beca | 77 | // Setup Interrupt callback functions for a pb hit |
jhurley31 | 1:a6872783beca | 78 | pb_left.attach_deasserted(&pb_left_hit_callback); |
jhurley31 | 1:a6872783beca | 79 | pb_right.attach_deasserted(&pb_right_hit_callback); |
jhurley31 | 1:a6872783beca | 80 | pb_up.attach_deasserted(&pb_up_hit_callback); |
jhurley31 | 1:a6872783beca | 81 | pb_down.attach_deasserted(&pb_down_hit_callback); |
jhurley31 | 1:a6872783beca | 82 | // Setup speaker |
jhurley31 | 1:a6872783beca | 83 | SpeakerOut.period(1.0/200000.0); |
jhurley31 | 1:a6872783beca | 84 | |
jhurley31 | 1:a6872783beca | 85 | //Setup LCD display |
jhurley31 | 1:a6872783beca | 86 | uLCD.display_control(PORTRAIT); |
jhurley31 | 1:a6872783beca | 87 | uLCD.background_color(BLACK); |
jhurley31 | 1:a6872783beca | 88 | uLCD.cls(); |
jhurley31 | 1:a6872783beca | 89 | uLCD.baudrate(BAUD_3000000); //jack up baud rate to max for fast display |
jhurley31 | 1:a6872783beca | 90 | wait(1.0); |
jhurley31 | 1:a6872783beca | 91 | // DrawMaze(); |
jhurley31 | 1:a6872783beca | 92 | // Start sampling pb inputs using interrupts |
jhurley31 | 1:a6872783beca | 93 | pb_left.setSampleFrequency(); |
jhurley31 | 1:a6872783beca | 94 | pb_right.setSampleFrequency(); |
jhurley31 | 1:a6872783beca | 95 | pb_up.setSampleFrequency(); |
jhurley31 | 1:a6872783beca | 96 | pb_down.setSampleFrequency(); |
jhurley31 | 1:a6872783beca | 97 | // pushbuttons now setup and running |
jhurley31 | 1:a6872783beca | 98 | while(1) |
jhurley31 | 1:a6872783beca | 99 | { |
jhurley31 | 1:a6872783beca | 100 | |
jhurley31 | 1:a6872783beca | 101 | } |
jhurley31 | 0:0c450cb95a1e | 102 | } //end main |