This is THE 447 FINAL PROJECT this is the frame work put your code in the spot where the it suppose to go and. Make sure you import this into your complier and work on your section, once you done just commit the changes and fork to a new folder
Dependencies: mbed-rtos mbed draw_test EALib SWSPI
main.cpp@1:3f7aa28da00d, 2015-12-01 (annotated)
- Committer:
- AndyTran
- Date:
- Tue Dec 01 01:08:16 2015 +0000
- Revision:
- 1:3f7aa28da00d
- Parent:
- 0:4abb197a773c
- Child:
- 2:b14759e704c7
more detail game_view_update
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AndyTran | 0:4abb197a773c | 1 | #include "mbed.h" |
AndyTran | 0:4abb197a773c | 2 | #include "cmsis_os.h" |
AndyTran | 0:4abb197a773c | 3 | |
AndyTran | 0:4abb197a773c | 4 | //declare your input pin and output pin here: |
AndyTran | 0:4abb197a773c | 5 | //DigitalOut led1(p25); |
AndyTran | 0:4abb197a773c | 6 | //DigitalOut led2(p26); |
AndyTran | 0:4abb197a773c | 7 | //DigitalOut led3(p28); |
AndyTran | 0:4abb197a773c | 8 | // |
AndyTran | 0:4abb197a773c | 9 | // declare you globle variable here: |
AndyTran | 0:4abb197a773c | 10 | unsigned char X_coor = 0,Y_coor = 0x0A; |
AndyTran | 0:4abb197a773c | 11 | unsigned char LEDs = ((X_coor << 8)|Y_coor); |
AndyTran | 0:4abb197a773c | 12 | //X_coor is x coordinate from 0 to 6 |
AndyTran | 0:4abb197a773c | 13 | //Y_coor is y coordinate form A to F |
AndyTran | 0:4abb197a773c | 14 | // |
AndyTran | 0:4abb197a773c | 15 | // |
AndyTran | 0:4abb197a773c | 16 | // |
AndyTran | 0:4abb197a773c | 17 | |
AndyTran | 0:4abb197a773c | 18 | // this thread is your SPI communication between 2 board |
AndyTran | 0:4abb197a773c | 19 | void SPI_communication(void const *args) { |
AndyTran | 0:4abb197a773c | 20 | //spi code here |
AndyTran | 0:4abb197a773c | 21 | } |
AndyTran | 0:4abb197a773c | 22 | |
AndyTran | 0:4abb197a773c | 23 | // joystick update x_coor and y_coor here |
AndyTran | 0:4abb197a773c | 24 | void joy_stick_read(void const *args) { //might be an interrupt thread here for interrupt read of joystick |
AndyTran | 0:4abb197a773c | 25 | // joy stick to update global val of x_coor and y_coor; |
AndyTran | 0:4abb197a773c | 26 | // update the 8 LEDs here |
AndyTran | 0:4abb197a773c | 27 | } |
AndyTran | 0:4abb197a773c | 28 | |
AndyTran | 0:4abb197a773c | 29 | // this thread use to update the game board |
AndyTran | 0:4abb197a773c | 30 | void game_view_update () { |
AndyTran | 0:4abb197a773c | 31 | // update the by led game update |
AndyTran | 1:3f7aa28da00d | 32 | // Uart runing at 921600 max speed; hopefully print 1 line and out; |
AndyTran | 1:3f7aa28da00d | 33 | // x = hit |
AndyTran | 1:3f7aa28da00d | 34 | // o = miss |
AndyTran | 1:3f7aa28da00d | 35 | // > = your ship ship |
AndyTran | 1:3f7aa28da00d | 36 | |
AndyTran | 1:3f7aa28da00d | 37 | // BLANK game Board |
AndyTran | 1:3f7aa28da00d | 38 | // F _ _ _ _ _ _ F _ _ _ _ _ _ |
AndyTran | 1:3f7aa28da00d | 39 | // E _ _ _ _ _ _ E _ _ _ _ _ _ |
AndyTran | 1:3f7aa28da00d | 40 | // D _ _ _ _ _ _ D _ _ _ _ _ _ |
AndyTran | 1:3f7aa28da00d | 41 | // C _ _ _ _ _ _ C _ _ _ _ _ _ |
AndyTran | 1:3f7aa28da00d | 42 | // B _ _ _ _ _ _ B _ _ _ _ _ _ |
AndyTran | 1:3f7aa28da00d | 43 | // A _ _ _ _ _ _ A _ _ _ _ _ _ |
AndyTran | 1:3f7aa28da00d | 44 | // 1 2 3 4 5 6 1 2 3 4 5 6 |
AndyTran | 1:3f7aa28da00d | 45 | // Friendly Enemy |
AndyTran | 1:3f7aa28da00d | 46 | |
AndyTran | 1:3f7aa28da00d | 47 | // Example of running game |
AndyTran | 1:3f7aa28da00d | 48 | // F _ O _ > _ _ F _ O _ _ _ _ |
AndyTran | 1:3f7aa28da00d | 49 | // E > _ O _ > _ E _ _ X _ _ _ |
AndyTran | 1:3f7aa28da00d | 50 | // D _ _ > _ _ _ D _ _ _ O _ _ |
AndyTran | 1:3f7aa28da00d | 51 | // C O _ _ _ _ _ C _ O _ _ _ _ |
AndyTran | 1:3f7aa28da00d | 52 | // B _ X _ O _ _ B _ _ _ X _ _ |
AndyTran | 1:3f7aa28da00d | 53 | // A _ _ _ > _ _ A _ _ _ _ _ _ |
AndyTran | 1:3f7aa28da00d | 54 | // 1 2 3 4 5 6 1 2 3 4 5 6 |
AndyTran | 1:3f7aa28da00d | 55 | // Friendly Enemy |
AndyTran | 1:3f7aa28da00d | 56 | // Turn 1 = miss at 2F |
AndyTran | 1:3f7aa28da00d | 57 | // Turn 2 = Destroy Enemy battle ship at 3E |
AndyTran | 1:3f7aa28da00d | 58 | // Turn 3 = miss at 4D |
AndyTran | 1:3f7aa28da00d | 59 | // Turn 4 = miss at 2C |
AndyTran | 1:3f7aa28da00d | 60 | // Tunr 5 = Destroy Enemy battle ship at 4B |
AndyTran | 1:3f7aa28da00d | 61 | |
AndyTran | 0:4abb197a773c | 62 | } |
AndyTran | 0:4abb197a773c | 63 | |
AndyTran | 0:4abb197a773c | 64 | // code here to check for winer and turn on the RGB |
AndyTran | 0:4abb197a773c | 65 | void winnercheck () { |
AndyTran | 0:4abb197a773c | 66 | //check for winner by some condition |
AndyTran | 0:4abb197a773c | 67 | } |
AndyTran | 0:4abb197a773c | 68 | |
AndyTran | 0:4abb197a773c | 69 | //read the accele |
AndyTran | 0:4abb197a773c | 70 | void checkreset () { |
AndyTran | 0:4abb197a773c | 71 | //read the acceleron meter and compare against the previous value to |
AndyTran | 0:4abb197a773c | 72 | //determine if the board have been shake the reset the game board; |
AndyTran | 0:4abb197a773c | 73 | } |
AndyTran | 0:4abb197a773c | 74 | |
AndyTran | 0:4abb197a773c | 75 | |
AndyTran | 0:4abb197a773c | 76 | osThreadDef(SPI_communication, osPriorityNormal, DEFAULT_STACK_SIZE); //comm between 2 board |
AndyTran | 0:4abb197a773c | 77 | osThreadDef(joy_stick_read, osPriorityNormal, DEFAULT_STACK_SIZE);//might be an interrupt; |
AndyTran | 0:4abb197a773c | 78 | osThreadDef(game_view_update, osPriorityNormal, DEFAULT_STACK_SIZE);//update game view write to the fifo uart buffer |
AndyTran | 0:4abb197a773c | 79 | osThreadDef(winnercheck, osPriorityNormal, DEFAULT_STACK_SIZE); //check for winner |
AndyTran | 0:4abb197a773c | 80 | osThreadDef(checkreset, osPriorityNormal, DEFAULT_STACK_SIZE); //check for reset |
AndyTran | 0:4abb197a773c | 81 | |
AndyTran | 0:4abb197a773c | 82 | int main() { |
AndyTran | 0:4abb197a773c | 83 | osThreadCreate(osThread(SPI_communication), NULL); |
AndyTran | 0:4abb197a773c | 84 | osThreadCreate(osThread(joy_stick_read), NULL); |
AndyTran | 0:4abb197a773c | 85 | osThreadCreate(osThread(game_view_update), NULL); |
AndyTran | 0:4abb197a773c | 86 | osThreadCreate(osThread(winnercheck), NULL); |
AndyTran | 0:4abb197a773c | 87 | osThreadCreate(osThread(checkreset), NULL); |
AndyTran | 0:4abb197a773c | 88 | // initialize all peripheral here |
AndyTran | 0:4abb197a773c | 89 | // |
AndyTran | 0:4abb197a773c | 90 | // |
AndyTran | 0:4abb197a773c | 91 | // |
AndyTran | 0:4abb197a773c | 92 | |
AndyTran | 0:4abb197a773c | 93 | //Main Thread |
AndyTran | 0:4abb197a773c | 94 | while (true) { |
AndyTran | 0:4abb197a773c | 95 | //check status and update status |
AndyTran | 0:4abb197a773c | 96 | } |
AndyTran | 0:4abb197a773c | 97 | } |