ジャパンオープン用のメインプログラム
Dependencies: mbed AQM1602 HMC6352 PID
main_processing/setup_command_active/command.cpp
- Committer:
- lilac0112_1
- Date:
- 2016-03-27
- Revision:
- 38:67bc78f3c0ab
- Parent:
- 32:367b16d69a32
File content as of revision 38:67bc78f3c0ab:
#include "mbed.h" #include "extern.h" void Command(void){ uint8_t SwState,x=0,y=0, z; uint8_t i; sys.jump_flag=JUMP_TAG_MAX; LcdPrint(&x,&y); while(1){ SwState = ReadSw(); if(SwState == NONE){ if(x!=0){ z = item[y].CommandFunction(x); if(z==1){ x=0; //jump if(sys.jump_flag!=JUMP_TAG_MAX){ for(i=0; i<STATE_NUM_Y; i++){ if(sys.jump_flag==item[i].tag_num) break; } if(i<STATE_NUM_Y){ y = i; y %= STATE_NUM_Y; } sys.jump_flag=JUMP_TAG_MAX; } LcdPrint(&x,&y); } //Z==1...Once //Z==0...Endless } continue; } if(SwState == UP){ y += -1 + STATE_NUM_Y; y %= STATE_NUM_Y; x=0; } if(SwState == DOWN){ y++; y %= STATE_NUM_Y; x=0; } if(SwState == RIGHT){ if(item[y].str_num<=1) x=0; else x++; x %= item[y].str_num; } if(SwState == LEFT){ x=0; } if(x==0){ X_ZERO_Function(&x,&y); } else{ X_NZERO_Function(&x,&y); } LcdPrint(&x,&y); } } uint8_t X_ZERO_Function(uint8_t *x, uint8_t *y){ uint8_t i; if(sys.jump_flag!=JUMP_TAG_MAX){//jump for(i=0; i<STATE_NUM_Y; i++){ if(sys.jump_flag==item[i].tag_num) break; } if(i<STATE_NUM_Y){ *y = i; *y %= STATE_NUM_Y; } sys.jump_flag=JUMP_TAG_MAX; } ReadCmps(); //cmps_set.CmpsInitialValue = cmps_set.cmps; wait_ms(10); cmps_set.CmpsDiff = REFERENCE - cmps_set.cmps; cmps_set.FrontDeg=0; LineKeeper=LINE_FREE;//line return 0; } uint8_t X_NZERO_Function(uint8_t *x, uint8_t *y){ LineKeeper=LINE_FIX;//line return 0; } uint8_t LcdPrint(uint8_t *x, uint8_t *y){ Lcd.cls(); Lcd.locate(0, 0); Lcd.print(item[*y].LcdStr[0]); Lcd.locate(7, 0); Lcd.print(">"); Lcd.locate(9, 0); if(*x!=0) Lcd.print(item[*y].LcdStr[*x]); return 0; }