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 Project_PokPakGame by
Diff: main.cpp
- Revision:
- 4:3605c624b64f
- Parent:
- 3:054a677aca64
- Child:
- 5:7041c827932b
--- a/main.cpp Sat Dec 05 13:48:10 2015 +0000 +++ b/main.cpp Sat Dec 05 17:19:21 2015 +0000 @@ -1,9 +1,13 @@ #include "mbed.h" +#include "time.h" SPI DataPack(SPI_MOSI, SPI_MISO, SPI_SCK); DigitalOut Latch(D10); AnalogIn VR0(A0); AnalogIn VR1(A1); +AnalogIn ran(A2); +DigitalIn UnderButton(D7); +DigitalIn UpperButton(D6); float VR_value0,VR_value1; int Base[6][3][3]= { @@ -269,190 +273,329 @@ } } +int UnderStart(int color) +{ + down=BaseUnder(color); + Latch=0; + DataPack.write(Col[down]); + wait_us(1); + DataPack.write(0xFF); + wait_us(1); + DataPack.write(Col[down]); + wait_us(1); + DataPack.write(Row[1]); + wait_us(1); + Latch=1; + if(UnderButton==1) { + x=down; + return 1; + } else return 0; +} + +int UpperStart(int color) +{ + up=BaseUpper(color); + Latch=0; + DataPack.write(Col[up]); + wait_us(1); + DataPack.write(0xFF); + wait_us(1); + DataPack.write(Col[up]); + wait_us(1); + DataPack.write(Row[6]); + wait_us(1); + Latch=1; + if(UpperButton==1) { + x=up; + return 1; + } else return 0; +} + +void uplose(int x) +{ + Latch=0; + DataPack.write(0xFF); + wait_us(1); + DataPack.write(0xFF); + wait_us(1); + DataPack.write(Col[x]); + wait_us(1); + DataPack.write(0x80); + wait_us(1); + Latch=1; + wait_ms(500); + +} + +void downlose(int x) +{ + Latch=0; + DataPack.write(0xFF); + wait_us(1); + DataPack.write(0xFF); + wait_us(1); + DataPack.write(Col[x]); + wait_us(1); + DataPack.write(0x01); + wait_us(1); + Latch=1; + wait_ms(500); +} + int main() { DataPack.frequency(100000); DataPack.format(8,0); - x=2; way=0; - - Count(); + srand(time(NULL)); + int chk,lifeup=2,lifeun=2; - while(1) { - for(y=2; y<7; y++) { - - if(x>6||x<1) { - way=way*-1; - } + chk=ran.read()*1000; + chk=chk%2; - x=x+way; - for(t=0; t<800; t++) { - BaseUnder(2); - up=BaseUpper(2); - - Latch=0; - DataPack.write(Col[x]); - wait_us(1); - DataPack.write(0xFF); - wait_us(1); - DataPack.write(Col[x]); - wait_us(1); - DataPack.write(Row[y]); - wait_us(1); - Latch=1; + //Count(); + while(1) { + while(1) { + if(chk==0) { + if(UnderStart(lifeun)==1) { + break; + } + BaseUpper(lifeup); + } + if(chk==1) { + if(UpperStart(lifeup)==1) { + break; + } + BaseUnder(lifeun); } } + while(1) { + if(chk==0) { + for(y=2; y<7; y++) { + if(x>6||x<1) { + way=way*-1; + } - if(x==0) { - if(up>1) { - break; + x=x+way; + for(t=0; t<800; t++) { + BaseUnder(lifeun); + up=BaseUpper(lifeup); + + Latch=0; + DataPack.write(Col[x]); + wait_us(1); + DataPack.write(0xFF); + wait_us(1); + DataPack.write(Col[x]); + wait_us(1); + DataPack.write(Row[y]); + wait_us(1); + Latch=1; + } + } + chk=1; + } + + if(x==0) { + if(up>1) { + lifeup=lifeup-1; + uplose(x); + break; + } + way=-1; + } + if(x==1) { + if(up>2) { + lifeup=lifeup-1; + uplose(x); + break; + } else if(up==1) { + way=0; + } else way=-1; } - way=1; - } - if(x==1) { - if(up>2) { - break; - } else if(up==1) { - way=0; - } else way=-1; - } - if(x==2) { - if(up>3) { - break; - } else if(up==1) { - way=1; - } else if(up==2) { - way=0; - } else way=-1; - } - if(x==3) { - if(up<2||up>4) { - break; - } else if(up==2) { + if(x==2) { + if(up>3) { + lifeup=lifeup-1; + uplose(x); + break; + } else if(up==1) { + way=1; + } else if(up==2) { + way=0; + } else way=-1; + } + if(x==3) { + if(up<2||up>4) { + lifeup=lifeup-1; + uplose(x); + break; + } else if(up==2) { + way=1; + } else if(up==3) { + way=0; + } else way=-1; + } + if(x==4) { + if(up<3||up>5) { + lifeup=lifeup-1; + uplose(x); + break; + } else if(up==3) { + way=1; + } else if(up==4) { + way=0; + } else way=-1; + } + if(x==5) { + if(up<4) { + lifeup=lifeup-1; + uplose(x); + break; + } else if(up==4) { + way=1; + } else if(up==5) { + way=0; + } else way=-1; + } + if(x==6) { + if(up<5) { + lifeup=lifeup-1; + uplose(x); + break; + } else if(up==5) { + way=1; + } else way=0; + } + if(x==7) { + if(up<6) { + lifeup=lifeup-1; + uplose(x); + break; + } way=1; - } else if(up==3) { - way=0; - } else way=-1; - } - if(x==4) { - if(up<3||up>5) { - break; - } else if(up==3) { - way=1; - } else if(up==4) { - way=0; - } else way=-1; - } - if(x==5) { - if(up<4) { - break; - } else if(up==4) { - way=1; - } else if(up==5) { - way=0; - } else way=-1; - } - if(x==6) { - if(up<5) { - break; - } else if(up==5) { - way=1; - } else way=0; - } - if(x==7) { - if(up<6) { - break; - } - way=1; - } - - for(y=5; y>0; y--) { - - if(x>6||x<1) { - way=way*-1; } - x=x+way; - for(t=0; t<800; t++) { - down=BaseUnder(2); - BaseUpper(2); + if(chk==1) { + for(y=5; y>0; y--) { + + if(x>6||x<1) { + way=way*-1; + } + + x=x+way; + for(t=0; t<800; t++) { + down=BaseUnder(lifeun); + BaseUpper(lifeup); - Latch=0; - DataPack.write(Col[x]); - wait_us(1); - DataPack.write(0xFF); - wait_us(1); - DataPack.write(Col[x]); - wait_us(1); - DataPack.write(Row[y]); - wait_us(1); - Latch=1; + Latch=0; + DataPack.write(Col[x]); + wait_us(1); + DataPack.write(0xFF); + wait_us(1); + DataPack.write(Col[x]); + wait_us(1); + DataPack.write(Row[y]); + wait_us(1); + Latch=1; + } + } + chk=0; } - } - if(x==0) { - if(down>1) { - break; + if(x==0) { + if(down>1) { + lifeun=lifeun-1; + downlose(x); + break; + } + way=-1; + } + if(x==1) { + if(down>2) { + lifeun=lifeun-1; + downlose(x); + break; + } else if(down==1) { + way=0; + } else way=-1; + } + if(x==2) { + if(down>3) { + lifeun=lifeun-1; + downlose(x); + break; + } else if(down==1) { + way=1; + } else if(down==2) { + way=0; + } else way=-1; + } + if(x==3) { + if(down<2||down>4) { + lifeun=lifeun-1; + downlose(x); + break; + } else if(down==2) { + way=1; + } else if(down==3) { + way=0; + } else way=-1; } - way=1; - } - if(x==1) { - if(down>2) { - break; - } else if(down==1) { - way=0; - } else way=-1; - } - if(x==2) { - if(down>3) { - break; - } else if(down==1) { + if(x==4) { + if(down<3||down>5) { + lifeun=lifeun-1; + downlose(x); + break; + } else if(down==3) { + way=1; + } else if(down==4) { + way=0; + } else way=-1; + } + if(x==5) { + if(down<4) { + lifeun=lifeun-1; + downlose(x); + break; + } else if(down==4) { + way=1; + } else if(down==5) { + way=0; + } else way=-1; + } + if(x==6) { + if(down<5) { + lifeun=lifeun-1; + downlose(x); + break; + } else if(down==5) { + way=1; + } else way=0; + } + if(x==7) { + if(down<6) { + lifeun=lifeun-1; + downlose(x); + break; + } way=1; - } else if(down==2) { - way=0; - } else way=-1; + } + } - if(x==3) { - if(down<2||down>4) { - break; - } else if(down==2) { - way=1; - } else if(down==3) { - way=0; - } else way=-1; - } - if(x==4) { - if(down<3||down>5) { - break; - } else if(down==3) { - way=1; - } else if(down==4) { - way=0; - } else way=-1; + if(lifeup<0) { + while(UnderButton==0&&UpperButton==0) { + + } + lifeup=2; + lifeun=2; } - if(x==5) { - if(down<4) { - break; - } else if(down==4) { - way=1; - } else if(down==5) { - way=0; - } else way=-1; + if(lifeun<0) { + while(UnderButton==0&&UpperButton==0) { + + } + lifeup=2; + lifeun=2; } - if(x==6) { - if(down<5) { - break; - } else if(down==5) { - way=1; - } else way=0; - } - if(x==7) { - if(down<6) { - break; - } - way=1; - } - } }