/* System	: 二足歩行ロボット(walk)
* File		: sequence.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		: */

#ifndef SEQUENCE_H
#define SEQUENCE_H

typedef struct{
	unsigned char complete:1;				/* 歩行動作シーケンス完了フラグ */
	unsigned char bit1_7:7;
} __f_s;
extern __f_s f_s;						/* 歩行動作シーケンス完了フラグ */

/* 歩行動作指示イベント */
enum WALKINGORDEREVENT {
	NO_EVENT = 0,						/* イベントなし */
	FORWARD_EVENT,						/* 前進 */
	RIGHT_EVENT,						/* 右回転 */
	BACKWARD_EVENT,						/* 後退 */
	LEFT_EVENT,						/* 左回転 */
	DANCE_EVENT,						/* ダンス */
	STOP_EVENT,						/* 停止 */
};
extern enum WALKINGORDEREVENT walking_order_event;		/* 歩行動作指示イベント */
extern enum WALKINGORDEREVENT walking_order_event_memory;	/* 歩行動作指示記憶イベント */

#define STOP_COUNTING -32768					/* カウント停止(0x8000) */

/* カウンタ（前進：＋、後退：−、右回り：＋、左回り：−）*/
extern int s16_count_target_request;				/* 要求目標歩数 */
extern void sequence_control(void);				/* 歩行動作シーケンス制御処理ユニット */

#endif
