Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of zProject_RTC_display_alarm by
main.cpp@4:a61cdd4e7afa, 2015-12-05 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |
