受け取りのコントローラのプログラム
Dependencies: TextLCD mbed MultiSerial Pswitch_Lib
Diff: main.cpp
- Revision:
- 10:8b49bbf4c0c9
- Parent:
- 9:39d3392a9587
--- a/main.cpp Sat Oct 04 02:28:38 2014 +0000 +++ b/main.cpp Thu Oct 16 11:00:30 2014 +0000 @@ -12,9 +12,27 @@ enum COMPASS{NORTH=0, EAST, SOUTH, WEST}; enum COLOR{YELLOW=0, RED, GREEN, BLUE}; + +#define INITIAL_TIME 180 + +LocalFileSystem local("local"); + +Ticker Watch; + +uint8_t GivenTime=INITIAL_TIME; + +char *FileName = "/local/GIVEN180.txt"; +char *format = "%d\n"; +FILE *fp; + +void TickTack(void); + + + + + uint8_t INdata[DATA_NUM]={0}, EXdata[DATA_NUM]={0}; uint8_t count=0; -//uint8_t watch; bool SW; void SetUp(); @@ -37,6 +55,23 @@ TextLCD lcd(p26, p25, p24, p23, p22, p21, TextLCD::LCD16x2); // rs, e, d4-d7 int main() { + /*fp = fopen(FileName, "r"); + if (fp) { + fscanf(fp, format, &GivenTime); + fclose(fp); + } + fp = fopen(FileName, "w"); + if (fp) { + fprintf(fp, format, GivenTime); + fclose(fp); + } + + if((GivenTime == 0)||(GivenTime > 180)) GivenTime = INITIAL_TIME; + */ + Watch.attach(TickTack, 1); + + + SetUp(); @@ -48,17 +83,25 @@ YLED=!Toggle.read(); } - if(YLED&&SW) lcd.cls(), lcd.printf("Pause Mode\n"), SW=0; - if((!YLED)&&(!SW)) lcd.cls(), lcd.printf("Run Mode\n"), SW=1; + if(YLED&&SW) lcd.locate(0, 0), lcd.printf("Setting Mode\n"), SW=0, Watch.detach(); + if((!YLED)&&(!SW)) lcd.locate(0, 0), lcd.printf("Run Mode \n"), SW=1, Watch.attach(TickTack, 1); if(Toggle.read()){ + + EXdata[0] = LinkBit(!CrossKey[YELLOW][LEFT], !CrossKey[RED][LEFT], !CrossKey[GREEN][LEFT], !CrossKey[BLUE][LEFT], !CrossKey[YELLOW][RIGHT], !CrossKey[RED][RIGHT], !CrossKey[GREEN][RIGHT], !CrossKey[BLUE][RIGHT]); - EXdata[1] = LinkBit(0, 0, 0, 0, !SideKey[INDEX][LEFT], !SideKey[MIDDLE][LEFT], !SideKey[INDEX][RIGHT], !SideKey[MIDDLE][RIGHT]); + EXdata[1] = LinkBit(0, 0, 0, 1, !SideKey[INDEX][LEFT], !SideKey[MIDDLE][LEFT], !SideKey[INDEX][RIGHT], !SideKey[MIDDLE][RIGHT]); }else{ - EXdata[0] = EXdata[1] = 0x00; + EXdata[0] = 0x00; + EXdata[1] = 0x00; + + /*if((GivenTime!=INITIAL_TIME)&&(LinkBit(0, 0, 0, 0, !SideKey[INDEX][LEFT], !SideKey[MIDDLE][LEFT], !SideKey[INDEX][RIGHT], !SideKey[MIDDLE][RIGHT])==0xF)){ + GivenTime = INITIAL_TIME; + lcd.locate(0, 1), lcd.printf("%d:%02d \n", GivenTime/60, GivenTime%60); + }*/ } LED = Toggle*LinkBit(0, 0, 0, 0, !SideKey[INDEX][LEFT], !SideKey[MIDDLE][LEFT], !SideKey[INDEX][RIGHT], !SideKey[MIDDLE][RIGHT]); @@ -68,11 +111,12 @@ void SetUp(void){ - + //SW = !Toggle; - lcd.printf("Hello World!\n"); - if(!Toggle.read()) lcd.cls(), lcd.printf("Pause Mode\n"), SW=0; - if(Toggle.read()) lcd.cls(), lcd.printf("Run Mode\n"), SW=1; + if(!Toggle) lcd.locate(0, 0), lcd.printf("Setting Mode\n"), SW=0; + else lcd.locate(0, 0), lcd.printf("Run Mode \n"), SW=1; + + lcd.locate(0, 1), lcd.printf("%d:%02d \n", GivenTime/60, GivenTime%60); CrossKey[NORTH][RIGHT].mode(PullUp); CrossKey[EAST][RIGHT].mode(PullUp); @@ -98,4 +142,23 @@ void illumination(void){//literally count++; LED = count; +} + + + +void TickTack(void){ + if(!Toggle) return; + lcd.locate(0, 1); + + if(GivenTime==0){ + lcd.printf("GameSet! \n"); + Watch.detach(); + } + else{ + GivenTime--; + /*fp = fopen(FileName, "w"); + fprintf(fp, format, GivenTime); + fclose(fp);*/ + lcd.printf("%d:%02d \n", GivenTime/60, GivenTime%60); + } } \ No newline at end of file