Main Program

Dependencies:   mbed AQM1602 HMC6352 PID

Committer:
lilac0112_1
Date:
Thu Feb 25 06:12:47 2016 +0000
Revision:
45:c23f25c00d0d
Parent:
42:02aaa806d929
Hokushinetsu(20:1)

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