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

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?

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