Bluetooth
Dependencies: 4DGL-uLCD-SE mbed MMA8452 PinDetect SDFileSystem wave_player
main.cpp
- Committer:
- ridwangs7
- Date:
- 22 months ago
- Revision:
- 1:f264a7ecd285
- Parent:
- 0:088af403d779
- Child:
- 2:655c8a5c2ad8
File content as of revision 1:f264a7ecd285:
/* Jared Walker Ridwan Sadiq Emanuel Abdul-Salaam Juan Padilla */ #include "mbed.h" #include "uLCD_4DGL.h" BusOut myled(LED1,LED2,LED3,LED4); Serial blue(p9,p10); Serial pc(USBTX, USBRX); uLCD_4DGL ulcd(p13,p14,p11); int but_pushed = -1; // ==1 -> pb1 pushed, == 2 -> pb2 pushed bool selectedDiceArray[5]; int selectDice() { char bnum=0; char bhit=0; int diceNum = 0; if (blue.getc()=='!') { if (blue.getc()=='B') { //button data packet bnum = blue.getc(); //button number bhit = blue.getc(); //1=hit, 0=release if (blue.getc()==char(~('!' + 'B' + bnum + bhit))) { //checksum OK? if ((bnum>='1')&&(bnum<='5')){ //is a number button 1..4 diceNum = bnum-48; selectedDiceArray[diceNum]= 1; if (bhit=='1') { myled = bnum - '0'; } else { myled = '0'; } } } } } return diceNum; } void draw_start(){ ulcd.text_width(2); ulcd.text_height(2); ulcd.locate(2,2); ulcd.printf("\n YAHTZEE"); ulcd.text_width(1); ulcd.text_height(1); ulcd.locate(4,8); ulcd.printf("\n Press to Roll"); // Processing } void draw_readyRoll(){ ulcd.text_width(1); ulcd.text_height(1); ulcd.locate(4,1); ulcd.printf("\n Ready to Roll"); ulcd.text_width(2); ulcd.text_height(2); ulcd.locate(2,1); ulcd.printf("\n Press\n Roll\n Button\n to Roll"); // Processing } void draw_diceDisp(){ ulcd.text_width(1); ulcd.text_height(1); ulcd.locate(1,1); ulcd.printf("Do you want to select any dice?"); // Processing } void draw_diceSelect(){ ulcd.text_width(1); ulcd.text_height(1); ulcd.locate(1,1); ulcd.printf("Press button 1 to roll again"); ulcd.printf("\n Press button 2 to break"); // Processing } void draw_scoreScreen(){ ulcd.text_width(1); ulcd.text_height(1); ulcd.locate(1,1); ulcd.printf("Please score your round and reset."); // Processing } int main() { ulcd.cls(); ulcd.baudrate(3000000); //jack up baud rate to max for fast display int selectedDice = 0; while(1) { draw_start(); selectedDice = selectDice(); pc.printf("Selected Dice: '%d %d'\n", selectedDice, selectedDiceArray[selectedDice]); /* pseudocode to match flow block diagram but_pushed = -1; while(but_pushed != 2){ // enter while if 1 pressed (yes) -> (initially -1) but_pushed = -1; while (but_pushed != 1){ draw_readyRoll(); draw_diceDisp(); } draw_diceSelect(); } */ // draw_scoreScreen(); } }