Main Program

Dependencies:   mbed AQM1602 HMC6352 PID

Committer:
lilac0112_1
Date:
Thu Jan 21 07:11:08 2016 +0000
Revision:
19:342da3a5a474
Child:
22:a95f7c63af3c
Main part was reconstructed.

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 19:342da3a5a474 10 modeAttack0
lilac0112_1 19:342da3a5a474 11 };
lilac0112_1 19:342da3a5a474 12 for(i=0; i<DUTY_NUM; i++){
lilac0112_1 19:342da3a5a474 13 Duty[DUTY_SW].attach(DutyFunction[i], dutycycle[i]);
lilac0112_1 19:342da3a5a474 14 }
lilac0112_1 19:342da3a5a474 15 data.stopflag=0;
lilac0112_1 19:342da3a5a474 16 //スタート直前の処理
lilac0112_1 19:342da3a5a474 17 SetUp2();
lilac0112_1 19:342da3a5a474 18 while(1){
lilac0112_1 19:342da3a5a474 19 //pc.printf("data.stopflag=%d\r\n", data.stopflag);
lilac0112_1 19:342da3a5a474 20 if(data.stopflag==1){
lilac0112_1 19:342da3a5a474 21 //システム上の停止処理
lilac0112_1 19:342da3a5a474 22 button.detach();
lilac0112_1 19:342da3a5a474 23 last_statesum = statesum = 0;
lilac0112_1 19:342da3a5a474 24 state[0] = state[1] = state[2] = state[3] = 0;
lilac0112_1 19:342da3a5a474 25
lilac0112_1 19:342da3a5a474 26 for(i=0; i<DUTY_NUM; i++){
lilac0112_1 19:342da3a5a474 27 Duty[DUTY_SW].detach();
lilac0112_1 19:342da3a5a474 28 }
lilac0112_1 19:342da3a5a474 29 data.stopflag=0;
lilac0112_1 19:342da3a5a474 30 //その他停止処理
lilac0112_1 19:342da3a5a474 31 StopProcess();
lilac0112_1 19:342da3a5a474 32 break;
lilac0112_1 19:342da3a5a474 33 }
lilac0112_1 19:342da3a5a474 34 StrategyFunction[data.strategy]();
lilac0112_1 19:342da3a5a474 35 }
lilac0112_1 19:342da3a5a474 36 return;
lilac0112_1 19:342da3a5a474 37 }
lilac0112_1 19:342da3a5a474 38 //for transition
lilac0112_1 19:342da3a5a474 39 void ResetState(void){
lilac0112_1 19:342da3a5a474 40 last_statesum = statesum = 0;
lilac0112_1 19:342da3a5a474 41 state[0] = state[1] = state[2] = state[3] = 0;
lilac0112_1 19:342da3a5a474 42 }
lilac0112_1 19:342da3a5a474 43 void Active2Command(void){
lilac0112_1 19:342da3a5a474 44 uint8_t i;
lilac0112_1 19:342da3a5a474 45 for(i=0; i<4; i++){
lilac0112_1 19:342da3a5a474 46 if(CountSw(i)==1) state[i]=1;
lilac0112_1 19:342da3a5a474 47 }
lilac0112_1 19:342da3a5a474 48 last_statesum = statesum;
lilac0112_1 19:342da3a5a474 49 statesum = state[0]+state[1]+state[2]+state[3];
lilac0112_1 19:342da3a5a474 50 if((statesum>=1)&&(!(statesum==last_statesum))){
lilac0112_1 19:342da3a5a474 51 button.attach(&ResetState, 2.0);
lilac0112_1 19:342da3a5a474 52 }
lilac0112_1 19:342da3a5a474 53 if((statesum>=2)&&(1)){
lilac0112_1 19:342da3a5a474 54 data.stopflag=1;
lilac0112_1 19:342da3a5a474 55 }
lilac0112_1 19:342da3a5a474 56 }