ジャパンオープン用のメインプログラム
Dependencies: mbed AQM1602 HMC6352 PID
setting/def.h
- Committer:
- lilac0112_1
- Date:
- 2016-02-28
- Revision:
- 1:3e013ae7900d
- Parent:
- 0:ea35c18c85fc
- Child:
- 2:635947de1583
File content as of revision 1:3e013ae7900d:
#ifndef _DEF_H_ #define _DEF_H_ //BT(BlueTooth) #define DATA_NUM 8+2//2byte→KEYCODE(拝啓)とCHECKCODE(敬具) 8byte→やりとりするデータ #define TX_KEYCODE 0xAA//あちらのKEYCODE #define RX_KEYCODE 0xAA//こちらのKEYCODE #define KEY 0//KEYCODEは配列の最初 #define CHECK DATA_NUM-1//CHECKCODEは配列の最後 //Switch 入力値 #define NONE 0 #define UP 1 #define DOWN 2 #define RIGHT 3 #define LEFT 4 //Lcd 設定値 #define BUFSIZE 10 #define STATE_NUM_X 0x04 #define STATE_NUM_Y 0x10 //繰り返し割り込み #define DUTY_NUM 1 #define DUTY_SW 0 #define DUTY_GYRO 1 #define DUTY_PING 2 #define DUTY_COLOR 3 #define DUTY_MOUSE 4 /*PID処理*/ #define RATE 0.052//52 #define PID_BIAS 1.0 #define REFERENCE 180.0 #define MINIMUM 0.0 #define MAXIMUM 359.9 #define P_GAIN 1.3//1.25//0.8 //0.78 #define I_GAIN 0.0 //0.0 #define D_GAIN 0.01//0.01 //0.009 #define OUT_LIMIT 30.0 #define MAX_POW 100 #define MIN_POW -100 #define PID_CYCLE 0.05 //s //ir #define IR_X 0 #define IR_Y 1 #define IR_SHORT 0 #define IR_LONG 1 #define X_AXIS 0 #define Y_AXIS 1 #define DIS_0 0x0//low_value #define DIS_1 0x1 #define DIS_2 0x2 #define DIS_3 0x3 #define DIS_4 0x4 #define DIS_5 0x5 #define DIS_6 0x6 #define DIS_7 0x7//high_value //ping #define L_PING 0 #define R_PING 1 #define F_PING 2 #define B_PING 3 //0,1...main //2,3...debug board //line #define A_SPOT 0 #define B_SPOT 1 #define C_SPOT 2 #define AB_SPOT 3 #define LINE_RF 5 #define LINE_DELAY 0.5 //思考パターン #define STRATEGY_NUM 12 //計算 #define ROUND(x) ((x > 0) ? (x + 0.5) : (x - 0.5))//x...整数 #define PI 3.14159265358979323846 #define DEG2RAD(deg) (PI*(deg)/180.0) #define RAD2DEG(rad) (180.0(rad)/PI) //データ /* typedef struct {//ir,line,gyro,mouse,ping //ping uint8_t ping[4]; //ir uint8_t irKey; uint8_t irNotice; uint8_t irSpot[2]; uint8_t irPosition; uint8_t IrFlag; //line uint8_t lnFlag[3]; uint8_t ball; uint8_t KickOffFlag; //uint8_t LineBind[4];//宣言すると動かない⇒構造体の限界 uint8_t KickFlag; //motor int32_t motorlog[2]; uint8_t MotorFlag; double s_pow; double l_pow; //cmps&pid uint8_t PidFlag; double cmps, CmpsInitialValue, CmpsDiff, FrontDeg;//0<x<360 double InputPID;//<<gyrosensor int16_t OutputPID;//>>motor uint8_t strategy; uint8_t init_point_flag; uint8_t stopflag; } Record; */ //NewStruct typedef struct { //cmps&pid double cmps, CmpsInitialValue, CmpsDiff, FrontDeg;//0<x<360 double InputPID;//<<gyrosensor int16_t OutputPID;//>>motor } CompassVal; typedef struct { //ping uint8_t ping[4]; //line uint8_t lineSpot[3]; //ir(spi) uint8_t irKey;//2bit uint8_t irValPhase[2];//3*2bit uint8_t irSpot[2];//4*2bit //ir(playing) uint8_t irNotice; uint8_t irPosition; //ball uint8_t ball; } SensorVal; typedef struct { //line uint8_t lnFlag[3]; uint8_t Flag[3]; uint8_t Priority[3]; uint8_t Bind[3]; } LineVal; typedef struct { //system,flag uint8_t strategy; //uint8_t init_point_flag; uint8_t jump_flag;//0<=x<=STATE_NUM_Y uint8_t stopflag; uint8_t KickOffFlag; uint8_t DribbleFlag; uint8_t KickFlag; uint8_t MotorFlag; uint8_t IrFlag; uint8_t UswFlag; uint8_t UswFlag_2; uint8_t PidFlag; //motor double s_pow; double l_pow; int8_t dri_pow; } SystemVal; #endif