CIS541 / Mbed 2 deprecated Pacemaker_2

Dependencies:   mbed-rtos mbed

Committer:
Huazhi
Date:
Fri Nov 27 21:43:33 2015 +0000
Revision:
0:6477530de2c0
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Huazhi 0:6477530de2c0 1 /* AMachine */
Huazhi 0:6477530de2c0 2 void AMachine(void const *i)
Huazhi 0:6477530de2c0 3 {
Huazhi 0:6477530de2c0 4 int CurrentState = AMACHINE_INITIAL;
Huazhi 0:6477530de2c0 5 RtosTimer local_timer = RtosTimer(AMachine_timer, osTimerPeriodic,(void *)0);
Huazhi 0:6477530de2c0 6 /*rtos timer can only use static functions as callbacks*/
Huazhi 0:6477530de2c0 7 local_timer.start(1);
Huazhi 0:6477530de2c0 8 while (true) {
Huazhi 0:6477530de2c0 9 int trn = 0;
Huazhi 0:6477530de2c0 10 switch (CurrentState) {
Huazhi 0:6477530de2c0 11 case AMACHINE_INITIAL:
Huazhi 0:6477530de2c0 12 if(AMachine_clock > CURRENT_LRI - AVI) {
Huazhi 0:6477530de2c0 13 SyncStatus[APACE] = agre_time;
Huazhi 0:6477530de2c0 14 CurrentState = AMACHINE_V;
Huazhi 0:6477530de2c0 15 pc.printf("APace ");
Huazhi 0:6477530de2c0 16 pc.printf("Time: %ld", agre_time);
Huazhi 0:6477530de2c0 17 pc.printf("\n");
Huazhi 0:6477530de2c0 18 }
Huazhi 0:6477530de2c0 19 }
Huazhi 0:6477530de2c0 20 for(trn=0; trn<=4; trn++) {
Huazhi 0:6477530de2c0 21 if(TRANS[trn].source == CurrentState){
Huazhi 0:6477530de2c0 22 TRANS[trn].active = true;
Huazhi 0:6477530de2c0 23 }else{
Huazhi 0:6477530de2c0 24 TRANS[trn].active = false;
Huazhi 0:6477530de2c0 25 }
Huazhi 0:6477530de2c0 26 if(TRANS[trn].active) {
Huazhi 0:6477530de2c0 27 if(EVAL_GUARD(trn)) {
Huazhi 0:6477530de2c0 28 if(TRANS[trn].syncid == NONE || agre_time - SyncStatus[TRANS[trn].syncid] < Broadcase_delay) {
Huazhi 0:6477530de2c0 29 CurrentState = TRANS[trn].dest;
Huazhi 0:6477530de2c0 30 ASSIGN(trn);
Huazhi 0:6477530de2c0 31 }
Huazhi 0:6477530de2c0 32 }
Huazhi 0:6477530de2c0 33 }
Huazhi 0:6477530de2c0 34 }
Huazhi 0:6477530de2c0 35 }
Huazhi 0:6477530de2c0 36 }