/* System	: 二足歩行ロボット(walk)
* File		: unit_sequence_data.h
* function	: 単位ステップシーケンス制御用データ
* Version	: 1.0
* Date		: 2019/5/7
* CPU		: RL78/G12 ROM:16KB RAM:1.5KB fCLK:24MHz
* IDE		: CS+ for CC V6.01.00 [01 Dec 2017]
* Programmer	: Hajime Sugiyama
* Note		: */

/* ホームポジションのパルス幅宣言 */
#define M01HOME 31199U
#define M02HOME 31199U
#define M03HOME 31199U
#define M04HOME 31199U

/* ＲＣサーボモータ可動限界パルス幅 */
#define M0UPPERLIMIT 50398U
#define M0LOWERLIMIT 12000U

/* 【参考】0x79DFU:1300μs(ＲＣサーボ中心位置)				*/
/* ＲＣサーボモータ可動範囲						*/
/* 			最小値	中心値	最大値	範　囲	毎	単位	*/
/* 角度			   -80	     0	    80	   160	 1	°	*/
/* パルス幅		   500	  1300	  2100	  1600	10	μs	*/
/* 設定値		 12000	 31199	 50398	 38399			*/
/* (16進表記)   	0x2EE0	0x79DF	0xC4DE				*/
/* 設定差分値		-19199	     0	 19199	 38399	240 		*/

/* 正立姿勢のパルス幅 */
extern const unsigned int u16_pulse_homeposition[4];

/* 目標姿勢のパルス幅 */
extern unsigned int u16_pulse_width_target[4];

/* 目標姿勢の数 */
#define PWSET_MAX 17
/* ＜設定パルス一覧表＞ */
extern const signed int s16_pulse_width[PWSET_MAX][4];

/********************************************************/
/* ＜単位ステップシーケンスデータ配列定義＞		*/
/* 　・単位ステップシーケンスのステップ数		*/
/* 　・単位ステップシーケンスデータ配列[]		*/
/*		={目標姿勢番号,目標姿勢移行時間}	*/
/* 					(回数×20ms)	*/
/*------------------------------------------------------*/
/* 前進 */
#define c_forward_firststep_right	3			/* 前進開始（右足前へ） */
#define c_forward_firststep_left	3			/* 前進開始（右足前へ） */
#define c_forward_left			4			/* 前進継続（左足前へ） */
#define c_forward_right			4			/* 前進継続（右足前へ） */
#define c_forward_break_left		3			/* 前進終了（左足揃え） */
#define c_forward_break_right		3			/* 前進終了（右足揃え） */
extern const unsigned int u16_forward_firststep_right[3][2];	/* 前進開始（右足前へ） */
extern const unsigned int u16_forward_firststep_left[3][2];	/* 前進開始（右足前へ） */
extern const unsigned int u16_forward_left[4][2];		/* 前進継続（左足前へ） */
extern const unsigned int u16_forward_right[4][2];		/* 前進継続（右足前へ） */
extern const unsigned int u16_forward_break_left[3][2];		/* 前進終了（左足揃え） */
extern const unsigned int u16_forward_break_right[3][2];	/* 前進終了（右足揃え） */
/*---------------------------------------------------------*/
/* 右回転 */
#define c_rotate_right_firststep_left	3			/* 右回転開始（左足上げ） */
#define c_rotate_right_firststep_right	3			/* 右回転開始（右足上げ） */
#define c_rotate_right_right		3			/* 右回転継続（右足上げ） */
#define c_rotate_right_left		3			/* 右回転継続（左足上げ） */
#define c_rotate_right_break_left	3			/* 右回転終了（左足揃え） */
#define c_rotate_right_break_right	3			/* 右回転終了（右足揃え） */
extern const unsigned int u16_rotate_right_firststep_left[3][2];/* 右回転開始（左足上げ） */
extern const unsigned int u16_rotate_right_firststep_right[3][2];/* 右回転開始（右足上げ） */
extern const unsigned int u16_rotate_right_right[3][2];		/* 右回転継続（右足上げ） */
extern const unsigned int u16_rotate_right_left[3][2];		/* 右回転継続（左足上げ） */
extern const unsigned int u16_rotate_right_break_left[3][2];	/* 右回転終了（左足揃え） */
extern const unsigned int u16_rotate_right_break_right[3][2];	/* 右回転終了（右足揃え） */
/*---------------------------------------------------------*/
/* 後退 */
#define c_backward_firststep_right	3			/* 後退開始（右足後へ） */
#define c_backward_firststep_left	3			/* 後退開始（左足後へ） */
#define c_backward_left			4			/* 後退継続（左足後へ） */
#define c_backward_right		4			/* 後退継続（右足後へ） */
#define c_backward_break_left		3			/* 後退終了（左足揃え） */
#define c_backward_break_right		3			/* 後退終了（右足揃え） */
extern const unsigned int u16_backward_firststep_right[3][2];	/* 後退開始（右足後へ） */
extern const unsigned int u16_backward_firststep_left[3][2];	/* 後退開始（左足後へ） */
extern const unsigned int u16_backward_left[4][2];		/* 後退継続（左足後へ） */
extern const unsigned int u16_backward_right[4][2];		/* 後退継続（右足後へ） */
extern const unsigned int u16_backward_break_left[3][2];	/* 後退終了（左足揃え） */
extern const unsigned int u16_backward_break_right[3][2];	/* 後退終了（右足揃え） */
/*---------------------------------------------------------*/
/* 左回転 */
#define c_rotate_left_firststep_left	3			/* 左回転開始（左足上げ） */
#define c_rotate_left_firststep_right	3			/* 左回転開始（右足上げ） */
#define c_rotate_left_right		3			/* 左回転継続（右足上げ） */
#define c_rotate_left_left		3			/* 左回転継続（左足上げ） */
#define c_rotate_left_break_right	3			/* 左回転終了（右足揃え） */
#define c_rotate_left_break_left	3			/* 左回転終了（左足揃え） */
extern const unsigned int u16_rotate_left_firststep_left[3][2];	/* 左回転開始（左足上げ） */
extern const unsigned int u16_rotate_left_firststep_right[3][2];/* 左回転開始（右足上げ） */
extern const unsigned int u16_rotate_left_right[3][2];		/* 左回転継続（右足上げ） */
extern const unsigned int u16_rotate_left_left[3][2];		/* 左回転継続（左足上げ） */
extern const unsigned int u16_rotate_left_break_right[3][2];	/* 左回転終了（右足揃え） */
extern const unsigned int u16_rotate_left_break_left[3][2];	/* 左回転終了（左足揃え） */

/*---------------------------------------------------------*/
/* ダンス */
#define c_dance				4			/* ダンス */
extern const unsigned int u16_dance[4][2];			/* ダンス */
