/************************************************************************
Title: MIRSVシステム ノーマルモード
File : NOMAL.C Ver.1.0 written on Jan.26,1996 by J.W.
Ver.2.0 Feb.5,1996
*************************************************************************/
#include "m9401.h"
#include "mathf.h"
extern float Z;
extern float Th;
extern float Th_ref;
extern float V;
extern float V_ref;
extern int Tc;
extern int Tmc;
extern int Turn;
extern int Seg[];
extern int Th_e;
extern int flag;
extern int Ts_d;
extern int Dist[];
extern int Posi;
extern int Act; /* 0:go 1:turn_left 2:turn_right 3:back 4:stop */
int nomal()
{
int act_o;
flag=OFF;
if(Turn==0){
switch(Posi){
case 1:/* */
Th_ref = PIH;
break;
case 2:
Th_ref = PI;
break;
case 3:
Th_ref = PI+PIH;
break;
case 4:
Th_ref = 0;
break;
default:
Th_ref = Th;
break;
}
}
else{
switch(Posi){
case 1:/* */
Th_ref = PI2-PIH;
break;
case 2:
Th_ref = 0;
break;
case 3:
Th_ref = PIH;
break;
case 4:
Th_ref = PI;
break;
default:
Th_ref = Th;
break;
}
}
act_o=Act;
switch(Th_e){
case 1:
Act=0;
break;
case 2:
Act=1;
break;
case 3:
Act=2;
break;
default:
Act=4;
break;
}
if(act_o==0 && fabsf(Th_ref-Th) < PI/9)
Act=0;
if(act_o==0 && Th_ref==0){
if(Th>PI2-PI/9 && Th0 && Th