![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Main Program
Dependencies: mbed AQM1602 HMC6352 PID
main_processing/setup_command_active/active.cpp
- Committer:
- lilac0112_1
- Date:
- 2016-02-25
- Revision:
- 45:c23f25c00d0d
- Parent:
- 42:02aaa806d929
File content as of revision 45:c23f25c00d0d:
#include "mbed.h" #include "extern.h" void ActiveLoop(void){ uint8_t i; void (*DutyFunction[DUTY_NUM])(void) = { Active2Command }; void (*StrategyFunction[STRATEGY_NUM])(void) = { modeAttack2, //modeAttack3, //modeAttack4, modeAttack1, modeAttack2, modeAttack3, modeAttack4, modeAttack5, modeDebug0, modeDebug1, modeDebug2, modeDebug3, modeDebug4, modeDebug5, }; for(i=0; i<DUTY_NUM; i++){ Duty[i].attach(DutyFunction[i], dutycycle[i]); } data.stopflag=0; //スタート直前の処理 SetUp2(); while(1){ //pc.printf("data.stopflag=%d\r\n", data.stopflag); if(data.stopflag==1){ //システム上の停止処理 button.detach(); last_statesum = statesum = 0; state[0] = state[1] = state[2] = state[3] = 0; for(i=0; i<DUTY_NUM; i++){ Duty[DUTY_SW].detach(); } data.stopflag=0; //その他停止処理 StopProcess(); break; } StrategyFunction[data.strategy](); } return; } //for transition void ResetState(void){ last_statesum = statesum = 0; state[0] = state[1] = state[2] = state[3] = 0; } void Active2Command(void){ uint8_t i; for(i=0; i<4; i++){ if(CountSw(i)==1) state[i]=1; } last_statesum = statesum; statesum = state[0]+state[1]+state[2]+state[3]; if((statesum>=1)&&(!(statesum==last_statesum))){ button.attach(&ResetState, 2.0); } if((statesum>=2)&&(1)){ data.stopflag=1; } }