![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Main Program
Dependencies: mbed AQM1602 HMC6352 PID
main_processing/setup_command_active/active.cpp@45:c23f25c00d0d, 2016-02-25 (annotated)
- 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?
User | Revision | Line number | New 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 | } |