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:49:25 2015 +0000
Revision:
3:84d9362dffeb
Parent:
2:b14759e704c7
Child:
4:b192d0d47309
no more changes

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AndyTran 2:b14759e704c7 1 #include <iostream>
AndyTran 0:4abb197a773c 2 #include "mbed.h"
AndyTran 0:4abb197a773c 3 #include "cmsis_os.h"
AndyTran 2:b14759e704c7 4 using namespace std;
AndyTran 0:4abb197a773c 5
AndyTran 0:4abb197a773c 6 //declare your input pin and output pin here:
AndyTran 0:4abb197a773c 7 //DigitalOut led1(p25);
AndyTran 0:4abb197a773c 8 //DigitalOut led2(p26);
AndyTran 0:4abb197a773c 9 //DigitalOut led3(p28);
AndyTran 0:4abb197a773c 10 //
AndyTran 0:4abb197a773c 11 // declare you globle variable here:
AndyTran 2:b14759e704c7 12 unsigned char my_X_coor = 0, my_Y_coor = 0;
AndyTran 3:84d9362dffeb 13 unsigned char my_LEDs = 0x1A;
AndyTran 2:b14759e704c7 14 unsigned char other_X_coor = 0, other_Y_coor = 0;
AndyTran 2:b14759e704c7 15 int friendly [6][6]; // array to determine friendly location
AndyTran 2:b14759e704c7 16
AndyTran 2:b14759e704c7 17
AndyTran 0:4abb197a773c 18 //X_coor is x coordinate from 0 to 6
AndyTran 0:4abb197a773c 19 //Y_coor is y coordinate form A to F
AndyTran 0:4abb197a773c 20 //
AndyTran 0:4abb197a773c 21 //
AndyTran 0:4abb197a773c 22 //
AndyTran 0:4abb197a773c 23
AndyTran 0:4abb197a773c 24 // this thread is your SPI communication between 2 board
AndyTran 0:4abb197a773c 25 void SPI_communication(void const *args) {
AndyTran 2:b14759e704c7 26 //send my_X_coor and my_Y_coor if the center button is hit
AndyTran 2:b14759e704c7 27 //receive other board x_coor and y_coor
AndyTran 0:4abb197a773c 28 //spi code here
AndyTran 0:4abb197a773c 29 }
AndyTran 0:4abb197a773c 30
AndyTran 0:4abb197a773c 31 // joystick update x_coor and y_coor here
AndyTran 0:4abb197a773c 32 void joy_stick_read(void const *args) { //might be an interrupt thread here for interrupt read of joystick
AndyTran 0:4abb197a773c 33 // joy stick to update global val of x_coor and y_coor;
AndyTran 2:b14759e704c7 34 // convert y coor to hex offset
AndyTran 0:4abb197a773c 35 // update the 8 LEDs here
AndyTran 0:4abb197a773c 36 }
AndyTran 0:4abb197a773c 37
AndyTran 0:4abb197a773c 38 // this thread use to update the game board
AndyTran 2:b14759e704c7 39 void game_view_update (void const *args) {
AndyTran 2:b14759e704c7 40 // board of this game will be a class this update and get info to and from the class
AndyTran 0:4abb197a773c 41 // update the by led game update
AndyTran 1:3f7aa28da00d 42 // Uart runing at 921600 max speed; hopefully print 1 line and out;
AndyTran 3:84d9362dffeb 43 // * = hit
AndyTran 1:3f7aa28da00d 44 // o = miss
AndyTran 1:3f7aa28da00d 45 // > = your ship ship
AndyTran 2:b14759e704c7 46
AndyTran 2:b14759e704c7 47 // 1) check for a hit
AndyTran 2:b14759e704c7 48 // 2) update the game board
AndyTran 2:b14759e704c7 49
AndyTran 1:3f7aa28da00d 50 // BLANK game Board
AndyTran 1:3f7aa28da00d 51 // F _ _ _ _ _ _ F _ _ _ _ _ _
AndyTran 1:3f7aa28da00d 52 // E _ _ _ _ _ _ E _ _ _ _ _ _
AndyTran 1:3f7aa28da00d 53 // D _ _ _ _ _ _ D _ _ _ _ _ _
AndyTran 1:3f7aa28da00d 54 // C _ _ _ _ _ _ C _ _ _ _ _ _
AndyTran 1:3f7aa28da00d 55 // B _ _ _ _ _ _ B _ _ _ _ _ _
AndyTran 1:3f7aa28da00d 56 // A _ _ _ _ _ _ A _ _ _ _ _ _
AndyTran 1:3f7aa28da00d 57 // 1 2 3 4 5 6 1 2 3 4 5 6
AndyTran 1:3f7aa28da00d 58 // Friendly Enemy
AndyTran 1:3f7aa28da00d 59
AndyTran 1:3f7aa28da00d 60 // Example of running game
AndyTran 1:3f7aa28da00d 61 // F _ O _ > _ _ F _ O _ _ _ _
AndyTran 3:84d9362dffeb 62 // E > _ O _ > _ E _ _ * _ _ _
AndyTran 1:3f7aa28da00d 63 // D _ _ > _ _ _ D _ _ _ O _ _
AndyTran 1:3f7aa28da00d 64 // C O _ _ _ _ _ C _ O _ _ _ _
AndyTran 3:84d9362dffeb 65 // B _ * _ O _ _ B _ _ _ * _ _ //X on friendly mean your ship got destroy
AndyTran 1:3f7aa28da00d 66 // A _ _ _ > _ _ A _ _ _ _ _ _
AndyTran 1:3f7aa28da00d 67 // 1 2 3 4 5 6 1 2 3 4 5 6
AndyTran 1:3f7aa28da00d 68 // Friendly Enemy
AndyTran 1:3f7aa28da00d 69 // Turn 1 = miss at 2F
AndyTran 2:b14759e704c7 70 // Turn 2 = We sink an enemy battle ship at 3E
AndyTran 1:3f7aa28da00d 71 // Turn 3 = miss at 4D
AndyTran 1:3f7aa28da00d 72 // Turn 4 = miss at 2C
AndyTran 2:b14759e704c7 73 // Tunr 5 = We sink an enemy battle ship at 4B
AndyTran 1:3f7aa28da00d 74
AndyTran 0:4abb197a773c 75 }
AndyTran 0:4abb197a773c 76
AndyTran 0:4abb197a773c 77 // code here to check for winer and turn on the RGB
AndyTran 2:b14759e704c7 78 void winnercheck (void const *args) {
AndyTran 0:4abb197a773c 79 //check for winner by some condition
AndyTran 0:4abb197a773c 80 }
AndyTran 0:4abb197a773c 81
AndyTran 0:4abb197a773c 82 //read the accele
AndyTran 2:b14759e704c7 83 void checkreset (void const *args) {
AndyTran 0:4abb197a773c 84 //read the acceleron meter and compare against the previous value to
AndyTran 0:4abb197a773c 85 //determine if the board have been shake the reset the game board;
AndyTran 0:4abb197a773c 86 }
AndyTran 0:4abb197a773c 87
AndyTran 0:4abb197a773c 88
AndyTran 2:b14759e704c7 89 osThreadDef(SPI_communication, osPriorityNormal, DEFAULT_STACK_SIZE); //comm between 2 board define thread
AndyTran 2:b14759e704c7 90 osThreadDef(joy_stick_read, osPriorityNormal, DEFAULT_STACK_SIZE);//might be an interrupt define thread
AndyTran 2:b14759e704c7 91 osThreadDef(game_view_update, osPriorityNormal, DEFAULT_STACK_SIZE);//update game view write to the fifo uart buffer define thread
AndyTran 2:b14759e704c7 92 osThreadDef(winnercheck, osPriorityNormal, DEFAULT_STACK_SIZE); //check for winner define thread
AndyTran 2:b14759e704c7 93 osThreadDef(checkreset, osPriorityNormal, DEFAULT_STACK_SIZE); //check for reset define thread
AndyTran 0:4abb197a773c 94
AndyTran 0:4abb197a773c 95 int main() {
AndyTran 0:4abb197a773c 96 osThreadCreate(osThread(SPI_communication), NULL);
AndyTran 0:4abb197a773c 97 osThreadCreate(osThread(joy_stick_read), NULL);
AndyTran 0:4abb197a773c 98 osThreadCreate(osThread(game_view_update), NULL);
AndyTran 0:4abb197a773c 99 osThreadCreate(osThread(winnercheck), NULL);
AndyTran 0:4abb197a773c 100 osThreadCreate(osThread(checkreset), NULL);
AndyTran 0:4abb197a773c 101 // initialize all peripheral here
AndyTran 0:4abb197a773c 102 //
AndyTran 0:4abb197a773c 103 //
AndyTran 0:4abb197a773c 104 //
AndyTran 0:4abb197a773c 105
AndyTran 2:b14759e704c7 106 //note game initialize and setup upon shake the board
AndyTran 2:b14759e704c7 107
AndyTran 0:4abb197a773c 108 //Main Thread
AndyTran 0:4abb197a773c 109 while (true) {
AndyTran 0:4abb197a773c 110 //check status and update status
AndyTran 0:4abb197a773c 111 }
AndyTran 0:4abb197a773c 112 }