FRA221_2015 / Mbed 2 deprecated B3_ShutMeUp

Dependencies:   mbed

Fork of zProject_RTC_display_alarm by PuG

Committer:
NamSom
Date:
Sat Dec 05 19:01:26 2015 +0000
Revision:
4:a61cdd4e7afa
Parent:
3:dc88b52d526c
Child:
5:60262753a05f
Game3 underdevelopment

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Peeraya 0:b2064b3558b6 1 #include "mbed.h"
Peeraya 0:b2064b3558b6 2 #include "DS1307.h"
Peeraya 0:b2064b3558b6 3 #include "DigitDisplay.h"
NamSom 4:a61cdd4e7afa 4 #include "Game.h"
Peeraya 0:b2064b3558b6 5
Peeraya 0:b2064b3558b6 6 DS1307 myrtc(I2C_SDA,I2C_SCL);
Peeraya 0:b2064b3558b6 7 DigitDisplay display(D7,D8);
NamSom 4:a61cdd4e7afa 8 Game game;
Peeraya 0:b2064b3558b6 9 DigitalOut buzzer(D6);
NamSom 1:ba7154d2d7ca 10 BusIn b(D9,D10,D11);
NamSom 1:ba7154d2d7ca 11 BusOut led(D2,D3,D4,D5);
Peeraya 3:dc88b52d526c 12 AnalogIn analog_value(A2);
NamSom 4:a61cdd4e7afa 13 const bool bcd[16][4] = {{0,0,0,0},{0,0,0,1},{0,0,1,0},{0,0,1,1},{0,1,0,0},{0,1,0,1},{0,1,1,0},{0,1,1,1},
NamSom 4:a61cdd4e7afa 14 {1,0,0,0},{1,0,0,1},{1,0,1,0},{1,0,1,1},{1,1,0,0},{1,1,0,1},{1,1,1,0},{1,1,1,1}};
Peeraya 3:dc88b52d526c 15
Peeraya 3:dc88b52d526c 16 void DisplayTime();
Peeraya 3:dc88b52d526c 17
NamSom 1:ba7154d2d7ca 18 int mode=0;
NamSom 1:ba7154d2d7ca 19 int main()
NamSom 1:ba7154d2d7ca 20 {
NamSom 1:ba7154d2d7ca 21 b.mode(PullUp);
Peeraya 3:dc88b52d526c 22 int sec=45,min=59,hour=6,day=7,date=5,month=12,year=15;
Peeraya 3:dc88b52d526c 23 int n=0,opt=1,p=0,ten_hour,nu_hour,ten_min,nu_min,hour_a=7,min_a=0;
Peeraya 3:dc88b52d526c 24 float mea;
NamSom 4:a61cdd4e7afa 25 int state=0;
NamSom 4:a61cdd4e7afa 26 int hexnum[4];
NamSom 4:a61cdd4e7afa 27 int currenthex=0, checkbcd=0, gameround=0, changehex=1;
Peeraya 3:dc88b52d526c 28
Peeraya 3:dc88b52d526c 29 myrtc.settime(sec,min,hour,day,date,month,year);
Peeraya 3:dc88b52d526c 30 //DisplayTime();
Peeraya 3:dc88b52d526c 31 //display.Displayset((hour-(hour%10))/10,hour%10,(min-(min%10))/10,min%10);
NamSom 1:ba7154d2d7ca 32 while(1)
NamSom 4:a61cdd4e7afa 33 {
NamSom 4:a61cdd4e7afa 34 mea=analog_value.read();
NamSom 4:a61cdd4e7afa 35 /*if(state==0)
NamSom 4:a61cdd4e7afa 36 {
NamSom 4:a61cdd4e7afa 37 mea=analog_value.read();
NamSom 4:a61cdd4e7afa 38 if(b==0b011){n=1;}
NamSom 4:a61cdd4e7afa 39 else if(b==0b101){n=2;}
NamSom 4:a61cdd4e7afa 40 else if(b==0b110){n=3;}
NamSom 4:a61cdd4e7afa 41 else n=0;
NamSom 4:a61cdd4e7afa 42 display.getButtonState(n);
NamSom 4:a61cdd4e7afa 43
NamSom 4:a61cdd4e7afa 44 wait_ms(100);
NamSom 4:a61cdd4e7afa 45
NamSom 4:a61cdd4e7afa 46 //printf("%d\n",mode);
NamSom 4:a61cdd4e7afa 47
NamSom 4:a61cdd4e7afa 48 wait_ms(100);
NamSom 4:a61cdd4e7afa 49
NamSom 4:a61cdd4e7afa 50 if(display.checkButton3()==1)
NamSom 4:a61cdd4e7afa 51 {
NamSom 4:a61cdd4e7afa 52 p++;
NamSom 4:a61cdd4e7afa 53 if(p==10){p=0;}
NamSom 4:a61cdd4e7afa 54 printf("%d\n",p);
NamSom 4:a61cdd4e7afa 55 if(p%2==0){opt=1;}
NamSom 4:a61cdd4e7afa 56 if(p%2==1){opt=2;}
NamSom 4:a61cdd4e7afa 57 }
NamSom 4:a61cdd4e7afa 58
NamSom 4:a61cdd4e7afa 59 myrtc.gettime(&sec,&min,&hour,&day,&date,&month,&year);
NamSom 4:a61cdd4e7afa 60
NamSom 4:a61cdd4e7afa 61 if(opt==1)
NamSom 4:a61cdd4e7afa 62 {
NamSom 4:a61cdd4e7afa 63 display.setColon(1);
NamSom 4:a61cdd4e7afa 64 display.Displayset((hour-(hour%10))/10,hour%10,(min-(min%10))/10,min%10);
NamSom 4:a61cdd4e7afa 65 }
NamSom 4:a61cdd4e7afa 66 if(opt==2)
NamSom 4:a61cdd4e7afa 67 {
NamSom 4:a61cdd4e7afa 68 ten_hour=(hour_a-(hour_a%10))/10;
NamSom 4:a61cdd4e7afa 69 nu_hour=hour_a%10;
NamSom 4:a61cdd4e7afa 70 ten_min=(min_a-(min_a%10))/10;
NamSom 4:a61cdd4e7afa 71 nu_min=min_a%10;
NamSom 4:a61cdd4e7afa 72 display.Displayset(ten_hour,nu_hour,ten_min,nu_min);
NamSom 1:ba7154d2d7ca 73
NamSom 4:a61cdd4e7afa 74 if(display.checkButton1()==1){hour_a++;}
NamSom 4:a61cdd4e7afa 75 if(display.checkButton2()==1){min_a++;}
NamSom 4:a61cdd4e7afa 76
NamSom 4:a61cdd4e7afa 77 if(hour_a==24){hour_a=0;}
NamSom 4:a61cdd4e7afa 78 if(min_a==60){min_a=0;}
NamSom 4:a61cdd4e7afa 79
NamSom 4:a61cdd4e7afa 80 }
NamSom 4:a61cdd4e7afa 81
NamSom 4:a61cdd4e7afa 82 }
NamSom 4:a61cdd4e7afa 83 if(hour==hour_a&&min==min_a)
NamSom 4:a61cdd4e7afa 84 else*/ if(mode==0)
Peeraya 3:dc88b52d526c 85 {
NamSom 4:a61cdd4e7afa 86 //buzzer=1;
NamSom 4:a61cdd4e7afa 87 state = 1;
NamSom 4:a61cdd4e7afa 88 int gamelevel=game.getlevel();
NamSom 4:a61cdd4e7afa 89 if(changehex==1)
NamSom 4:a61cdd4e7afa 90 {
NamSom 4:a61cdd4e7afa 91 for(int i=0;i<gamelevel;i++)
NamSom 4:a61cdd4e7afa 92 {
NamSom 4:a61cdd4e7afa 93 hexnum[i] = game.randomHex(mea);
NamSom 4:a61cdd4e7afa 94 }
NamSom 4:a61cdd4e7afa 95 if(gamelevel==1) display.Displayset(0xFF,0xFF,hexnum[0],0xFF);
NamSom 4:a61cdd4e7afa 96 else if(gamelevel==2) display.Displayset(0xFF,hexnum[0],hexnum[1],0xFF);
NamSom 4:a61cdd4e7afa 97 else if(gamelevel==3) display.Displayset(0xFF,hexnum[0],hexnum[1],hexnum[2]);
NamSom 4:a61cdd4e7afa 98 else if(gamelevel==4) display.Displayset(hexnum[0],hexnum[1],hexnum[2],hexnum[3]);
NamSom 4:a61cdd4e7afa 99 changehex = 0;
NamSom 4:a61cdd4e7afa 100 }
NamSom 4:a61cdd4e7afa 101 if(b==0b011){n=1;}
NamSom 4:a61cdd4e7afa 102 else if(b==0b101){n=2;}
NamSom 4:a61cdd4e7afa 103 else if(b==0b110){n=3;}
NamSom 4:a61cdd4e7afa 104 else n=0;
NamSom 4:a61cdd4e7afa 105 display.getButtonState(n);
NamSom 4:a61cdd4e7afa 106 if((bcd[hexnum[currenthex]][checkbcd]==0 && display.checkButton1()==1)||(bcd[hexnum[currenthex]][checkbcd]==1 && display.checkButton2()==1))
NamSom 4:a61cdd4e7afa 107 {
NamSom 4:a61cdd4e7afa 108 if(checkbcd<4) checkbcd++;
NamSom 4:a61cdd4e7afa 109 else
NamSom 4:a61cdd4e7afa 110 {
NamSom 4:a61cdd4e7afa 111 checkbcd=0;
NamSom 4:a61cdd4e7afa 112 currenthex++;
NamSom 4:a61cdd4e7afa 113 if(currenthex==gamelevel)
NamSom 4:a61cdd4e7afa 114 {
NamSom 4:a61cdd4e7afa 115 gameround++;
NamSom 4:a61cdd4e7afa 116 currenthex = 0;
NamSom 4:a61cdd4e7afa 117 changehex = 1;
NamSom 4:a61cdd4e7afa 118 display.A();
NamSom 4:a61cdd4e7afa 119 }
NamSom 4:a61cdd4e7afa 120 }
NamSom 4:a61cdd4e7afa 121 }
NamSom 4:a61cdd4e7afa 122 else if((bcd[hexnum[currenthex]][checkbcd]==1 && display.checkButton1()==1)||(bcd[hexnum[currenthex]][checkbcd]==0 && display.checkButton2()==1))
NamSom 4:a61cdd4e7afa 123 {
NamSom 4:a61cdd4e7afa 124 checkbcd=0;
NamSom 4:a61cdd4e7afa 125 game.pluslevel();
NamSom 4:a61cdd4e7afa 126 changehex = 1;
NamSom 4:a61cdd4e7afa 127 display.F();
NamSom 4:a61cdd4e7afa 128 }
NamSom 4:a61cdd4e7afa 129 else if(display.checkButton3()==3)
NamSom 4:a61cdd4e7afa 130 {
NamSom 4:a61cdd4e7afa 131 checkbcd=0;
NamSom 4:a61cdd4e7afa 132 currenthex==0;
NamSom 4:a61cdd4e7afa 133 }
NamSom 4:a61cdd4e7afa 134
NamSom 4:a61cdd4e7afa 135 if(gameround==4)
NamSom 4:a61cdd4e7afa 136 {
NamSom 4:a61cdd4e7afa 137 mode=1;
NamSom 4:a61cdd4e7afa 138 state=0;
NamSom 4:a61cdd4e7afa 139 buzzer=0;
NamSom 4:a61cdd4e7afa 140 game.resetlevel();
NamSom 4:a61cdd4e7afa 141 checkbcd=0;
NamSom 4:a61cdd4e7afa 142 currenthex==0;
NamSom 4:a61cdd4e7afa 143 gameround=0;
NamSom 4:a61cdd4e7afa 144 changehex=1;
NamSom 4:a61cdd4e7afa 145 }
Peeraya 3:dc88b52d526c 146 }
Peeraya 3:dc88b52d526c 147
Peeraya 3:dc88b52d526c 148 printf("%f\n",mea);
Peeraya 3:dc88b52d526c 149 if(mea>=0.65){min_a=min_a+1;}
Peeraya 3:dc88b52d526c 150
Peeraya 3:dc88b52d526c 151 }
Peeraya 3:dc88b52d526c 152 }