3: 2011-07-11 (月) 20:10:52 yoshida | 現: 2013-04-09 (火) 23:52:52 takaboo | ||
---|---|---|---|
Line 23: | Line 23: | ||
**キーボード入力関数の作成 [#y215f66b] | **キーボード入力関数の作成 [#y215f66b] | ||
- | 通常のキー入力では1回の押下で1バイトが入力されます。方向キーの場合は、1回の入力で3バイトも入力されます。 | + | 通常のキー入力では1回の押下で1バイトが入力されます。方向キーの場合は、1回の入力で3バイトも入力されます。~ |
+ | 機種により値が異なる可能性がありますので、ご注意ください。 | ||
| 1バイト目 | 2バイト目 | 3バイト目 | 方向キー | | | 1バイト目 | 2バイト目 | 3バイト目 | 方向キー | | ||
| 0x1b | 0x5b | 0x41 | 上キー | | | 0x1b | 0x5b | 0x41 | 上キー | | ||
Line 63: | Line 64: | ||
**変数 [#nfde1082] | **変数 [#nfde1082] | ||
- | パン(横振り)・チルト(上下振り)のポジション用に使う変数PanPositionとTiltPositionをuint16_t型で用意します。AX-12+のホーンが真ん中になるよう、初期値を512とします。~ | + | パン(横振り)・チルト(上下振り)のポジション用に使う変数PanPositionとTiltPositionをuint16_t型で用意します。AX-12Aのホーンが真ん中になるよう、初期値を512とします。~ |
入力バッファ用の変数inkeyと、ESCキー入力時の処理の終了判断を行うためのiendをint型で宣言します。 | 入力バッファ用の変数inkeyと、ESCキー入力時の処理の終了判断を行うためのiendをint型で宣言します。 | ||
#html{{ | #html{{ | ||
Line 97: | Line 98: | ||
**ポジションリミット [#i21b9509] | **ポジションリミット [#i21b9509] | ||
- | フレームが干渉してしまうようなポジションを送信すると、AX-12+に過大な負荷がかかり、破損する場合があります。そのようなポジションを送信しないよう、ポジションに仮のリミッタを設けます。 | + | フレームが干渉してしまうようなポジションを送信すると、AX-12Aに過大な負荷がかかり、破損する場合があります。そのようなポジションを送信しないよう、ポジションに仮のリミッタを設けます。 |
| 条件 | 移動方向 | リミッタ | | | 条件 | 移動方向 | リミッタ | | ||
Line 197: | Line 198: | ||
fd_DXSetPosition (1, PanPosition); // パン位置の設定 | fd_DXSetPosition (1, PanPosition); // パン位置の設定 | ||
fd_DXSetPosition (2, TiltPosition); // チルト位置の設定 | fd_DXSetPosition (2, TiltPosition); // チルト位置の設定 | ||
+ | |||
while (!fd_GetPB () && !iend) { | while (!fd_GetPB () && !iend) { | ||
if (fd_rx_buff ()) { | if (fd_rx_buff ()) { |