Simple starter skeleton for asteroids video game.

Dependencies:   PinDetect

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?

UserRevisionLine numberNew 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