Main Program

Dependencies:   mbed AQM1602 HMC6352 PID

Committer:
lilac0112_1
Date:
Tue Feb 02 04:07:06 2016 +0000
Revision:
31:0b0f64831771
Parent:
22:a95f7c63af3c
Child:
42:02aaa806d929
goodline

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lilac0112_1 19:342da3a5a474 1 #include "mbed.h"
lilac0112_1 19:342da3a5a474 2 #include "extern.h"
lilac0112_1 19:342da3a5a474 3
lilac0112_1 19:342da3a5a474 4 void ActiveLoop(void){
lilac0112_1 19:342da3a5a474 5 uint8_t i;
lilac0112_1 19:342da3a5a474 6 void (*DutyFunction[DUTY_NUM])(void) = {
lilac0112_1 19:342da3a5a474 7 Active2Command
lilac0112_1 19:342da3a5a474 8 };
lilac0112_1 19:342da3a5a474 9 void (*StrategyFunction[STRATEGY_NUM])(void) = {
lilac0112_1 31:0b0f64831771 10 modeAttack1,
lilac0112_1 22:a95f7c63af3c 11 modeAttack1,
lilac0112_1 22:a95f7c63af3c 12 modeAttack2,
lilac0112_1 22:a95f7c63af3c 13 modeAttack3,
lilac0112_1 22:a95f7c63af3c 14 modeAttack4,
lilac0112_1 22:a95f7c63af3c 15 modeAttack5,
lilac0112_1 22:a95f7c63af3c 16 modeDebug0,
lilac0112_1 22:a95f7c63af3c 17 modeDebug1,
lilac0112_1 22:a95f7c63af3c 18 modeDebug2,
lilac0112_1 22:a95f7c63af3c 19 modeDebug3,
lilac0112_1 22:a95f7c63af3c 20 modeDebug4,
lilac0112_1 22:a95f7c63af3c 21 modeDebug5,
lilac0112_1 19:342da3a5a474 22 };
lilac0112_1 19:342da3a5a474 23 for(i=0; i<DUTY_NUM; i++){
lilac0112_1 22:a95f7c63af3c 24 Duty[i].attach(DutyFunction[i], dutycycle[i]);
lilac0112_1 19:342da3a5a474 25 }
lilac0112_1 19:342da3a5a474 26 data.stopflag=0;
lilac0112_1 19:342da3a5a474 27 //スタート直前の処理
lilac0112_1 19:342da3a5a474 28 SetUp2();
lilac0112_1 19:342da3a5a474 29 while(1){
lilac0112_1 19:342da3a5a474 30 //pc.printf("data.stopflag=%d\r\n", data.stopflag);
lilac0112_1 19:342da3a5a474 31 if(data.stopflag==1){
lilac0112_1 19:342da3a5a474 32 //システム上の停止処理
lilac0112_1 19:342da3a5a474 33 button.detach();
lilac0112_1 19:342da3a5a474 34 last_statesum = statesum = 0;
lilac0112_1 19:342da3a5a474 35 state[0] = state[1] = state[2] = state[3] = 0;
lilac0112_1 19:342da3a5a474 36
lilac0112_1 19:342da3a5a474 37 for(i=0; i<DUTY_NUM; i++){
lilac0112_1 19:342da3a5a474 38 Duty[DUTY_SW].detach();
lilac0112_1 19:342da3a5a474 39 }
lilac0112_1 19:342da3a5a474 40 data.stopflag=0;
lilac0112_1 19:342da3a5a474 41 //その他停止処理
lilac0112_1 19:342da3a5a474 42 StopProcess();
lilac0112_1 19:342da3a5a474 43 break;
lilac0112_1 19:342da3a5a474 44 }
lilac0112_1 19:342da3a5a474 45 StrategyFunction[data.strategy]();
lilac0112_1 19:342da3a5a474 46 }
lilac0112_1 19:342da3a5a474 47 return;
lilac0112_1 19:342da3a5a474 48 }
lilac0112_1 19:342da3a5a474 49 //for transition
lilac0112_1 19:342da3a5a474 50 void ResetState(void){
lilac0112_1 19:342da3a5a474 51 last_statesum = statesum = 0;
lilac0112_1 19:342da3a5a474 52 state[0] = state[1] = state[2] = state[3] = 0;
lilac0112_1 19:342da3a5a474 53 }
lilac0112_1 19:342da3a5a474 54 void Active2Command(void){
lilac0112_1 19:342da3a5a474 55 uint8_t i;
lilac0112_1 19:342da3a5a474 56 for(i=0; i<4; i++){
lilac0112_1 19:342da3a5a474 57 if(CountSw(i)==1) state[i]=1;
lilac0112_1 19:342da3a5a474 58 }
lilac0112_1 19:342da3a5a474 59 last_statesum = statesum;
lilac0112_1 19:342da3a5a474 60 statesum = state[0]+state[1]+state[2]+state[3];
lilac0112_1 19:342da3a5a474 61 if((statesum>=1)&&(!(statesum==last_statesum))){
lilac0112_1 19:342da3a5a474 62 button.attach(&ResetState, 2.0);
lilac0112_1 19:342da3a5a474 63 }
lilac0112_1 19:342da3a5a474 64 if((statesum>=2)&&(1)){
lilac0112_1 19:342da3a5a474 65 data.stopflag=1;
lilac0112_1 19:342da3a5a474 66 }
lilac0112_1 19:342da3a5a474 67 }