熊研ロボコンライブラリ for H8/3052 ===================================================================== 1:内部クロック ===================================================================== 機能: ・WDT割り込みにより内部カウンタをカウントアップ  (標準値:約8.2kHz :モータ制御用周波数) ・その他割り込み処理のキック 使用リソース: ・WDT 依存: ・なし 設定: ・#define USE_KLR_WDT_CLOCK ・startup ファイルで _WDTInterrupt を 関数: ・void InitializeKLRlib(void) グローバル変数: ・volatile long SysTime; /* 8.2kHzとして 145hour */ 概要: ・WDTを使用してインターバルタイマを生成。 ・標準で約8192Hz ・ステッピングモータの駆動などで使用。 ===================================================================== 2:ラジコンサーボ制御関数 ===================================================================== 機能: ・ラジコンサーボを16個制御する ・指令値はunsigned short [16]による 使用リソース: ・PB:ラジコンサーボ用パルス分配基板を接続 ・ITU3,ITU4: 元パルス生成 ・DMA3系統(1A1B2A): 依存: ・異存なし 設定: #define USE_KLR_RCSERVO 関数: ・void InitializeKLRlib(void)   :初期化 ・void SetKLRServoBase(unsigned short *d)  :指令値配列を別途指定 グローバル変数: ・volatile unsigned short KLRS_Command[16]    :指令値配列 100-62500 100を下回ると誤パルスがでる 概要: ・void InitializeKLRlib を呼んだ後は KLRS_Commandにデータを設定するのみ ・SetKLRServoBaseを使うと、別の配列にいれられる。 ===================================================================== 3:ステッピングモータ駆動 ===================================================================== 機能: ・ステッピングモータの指定速度での回転(ステップ周波数、割り込み) 使用リソース: ・P1(8bit out):ステッピングモータパルス出力  KLRM_PORT を定義することで他のポートを使用可能 依存: ・内部クロック割り込み(強制使用) 設定: #define USE_KLR_STEP_MOTOR #define KLRM_PORT P1  ポート設定(デフォルト:P1) 関数: ・void InitializeKLRlib(void) グローバル変数: ・unsigned char KLRM_PatternL[8],KLRM_PatternR[8];  ステッピングモータ駆動パターン(デフォルトで設定される) ・unsigned int KLRM_SpeedR, KLRM_SpeedL  ステッピングモータパルスレート (単位:Hz) ===================================================================== 4:デッドレコニング処理関数 ===================================================================== 機能: ・ステッピングモータの回転パルスをもとに自己位置推定を行う 使用リソース: ・なし 依存: ・ステッピングモータ駆動(強制使用) 必要外部ファイル: ・drtable.h:  デッドレコニング用テーブルファイル(ロボット仕様にあわせて)  事前に読み込んでおく  (YAWSTEP, MMPERSTEP, DegTable, RadTable, XDeltaTable, YDeltaTable) 設定: #define USE_KLR_DEAD_RECKONING 関数: ・void InitializeKLRlib(void) グローバル変数: ・long KLRDR_PosX,KLRDR_PosY :  座標XY(ステップ単位、固定小数16.16形式) ・int KLRDR_Yaw:  ヨー角度(旋回単位 0〜YAWSTEP-1で0〜360度) ・long KLRDR_RelYaw:  相対回転角度(正負なし) ・long KLRDR_AbsStep,KLRDR_RelStep:  大まかな移動距離*2 AbsStepは前進後進とも+、RelStepは後進時− ===================================================================== ===================================================================== 機能: 使用リソース: 依存: 関数: グローバル変数: ===================================================================== その他関数 ===================================================================== 機能: ・雑多な関数 使用リソース: ・とくになし 依存: ・特になし 関数: ・unsigned long HexToInt(unsigned long h)  数値hをBCD表記にして返す  例:123→0x123  sermonで16進表記になってもOK ・unsigned long HexToIntFP16(unsigned long h)  数値hを16.16形式の固定小数数値としてBCD 4桁.4桁にして返す  例:12.5→0x00125000 ・long Mul_FP16_FP16(long a,long b)  16.16形式の固定小数数値の乗算 ・Limit(v,min,max) (マクロ)  vをminとmaxでクリップ ・unsigned long SqrtI(long l)  平方根を求める グローバル変数: