1: 2010-01-21 (木) 18:26:31 eid7gud ソース 2: 2010-01-21 (木) 18:57:58 eid7gud ソース
Line 1: Line 1:
 +''只今編集中です。''
 +
*プログラミング [#m6ec823e] *プログラミング [#m6ec823e]
#ref(SoundMeter_p1.png) #ref(SoundMeter_p1.png)
Line 5: Line 7:
先ず処理の流れを図にします。 先ず処理の流れを図にします。
#ref(SoundMeter_p2.png) #ref(SoundMeter_p2.png)
-処理の流れとしては、AX-S1の最大音量を取得し、それに対応した角度へAX-12+のホーン動かすを繰り返すだけとなります。+AX-S1の最大音量を取得し、それに対応した角度へAX-12+のホーン動かすを繰り返すだけとなります。
**準備 [#r9783670] **準備 [#r9783670]
Line 14: Line 16:
ファイルを別の名前で保存します。 ファイルを別の名前で保存します。
-メニューの「ファイル」→「名前を付けて保存」→ファイル名に「SoundMeter.c」と入力し、[[Chapter1.3>FDIII-HC Starter Kit Guide Chapter1.3]]で作成したSampleフォルダに「保存」します。+メニューの「ファイル」→「名前を付けて保存」→ファイル名に「SoundMeter.c」と入力し、[[Chapter1.3のサンプルプログラムのダウンロード>FDIII-HC Starter Kit Guide Chapter1.3#r86cf508]]で作成したSampleフォルダに「保存」します。
**不要部位を削除 [#y36d4588] **不要部位を削除 [#y36d4588]
Line 26: Line 28:
   }    }
**音量最大値取得 [#q67b1dd0] **音量最大値取得 [#q67b1dd0]
-Chapter3ではAX-S1の正面赤外線反射センサの値を取得しました。今回は最大音量を取得します。[[AX-S1コントロールテーブル>FDIII-HC Starter Kit Guide Chapter1.1#u70f1fa1]]を見て下さい。音量最大保持値はアドレス36です。+Chapter3ではAX-S1の正面赤外線反射センサの値を取得しました。今回は最大音量を取得します。 
 + 
 +[[AX-S1コントロールテーブル>FDIII-HC Starter Kit Guide Chapter1.1#u70f1fa1]]を見て下さい。音量最大保持値はアドレス36です。
音量最大保持値はアドレス35の音量測定値の最大値を保持し続けます。 音量最大保持値はアドレス35の音量測定値の最大値を保持し続けます。
-    fd_DXReadByteData (100, 27, &ReadData);+ fd_DXReadByteData (100, 27, &ReadData);
の第2引数を36に書き換えます。 の第2引数を36に書き換えます。
-    fd_DXReadByteData (100, 36, &ReadData);+ fd_DXReadByteData (100, 36, &ReadData);
**AX-12+のホーンを動かす [#a86b83f6] **AX-12+のホーンを動かす [#a86b83f6]
AX-12+のホーンの角度をメーターに見立て、音量最大保持値に対応した角度にホーンを動かします。 AX-12+のホーンの角度をメーターに見立て、音量最大保持値に対応した角度にホーンを動かします。
 +
AX-12+のホーンを動かすには、AX-12+のコントロールテーブルのアドレス30,31にゴールポジションを書き込みます。2バイトのデータを書き込むにはfd_DXWriteWordData関数を使います。詳しくは[[Chapter3.3のバーを開ける>FDIII-HC Starter Kit Guide Chapter3.3#icc81839]]を参照して下さい。 AX-12+のホーンを動かすには、AX-12+のコントロールテーブルのアドレス30,31にゴールポジションを書き込みます。2バイトのデータを書き込むにはfd_DXWriteWordData関数を使います。詳しくは[[Chapter3.3のバーを開ける>FDIII-HC Starter Kit Guide Chapter3.3#icc81839]]を参照して下さい。
-    fd_DXWriteWordData (1, 30, ゴールポジション); + fd_DXWriteWordData (1, 30, ゴールポジション); 
-ゴールポジションに書き込む値には何を入れるべきでしょうか?+ゴールポジションの部分には何を入れるべきでしょうか?
音量最大保持値に対応した角度にAX-12+のホーンを動かしますので、ゴールポジション=音量最大保持値です。~ 音量最大保持値に対応した角度にAX-12+のホーンを動かしますので、ゴールポジション=音量最大保持値です。~
音量最大保持値は 音量最大保持値は
-    fd_DXReadByteData (100, 27, &ReadData);+ fd_DXReadByteData (100, 27, &ReadData);
で変数ReadDataに代入されます。従ってゴールポジションにはReadDataと書きます。 で変数ReadDataに代入されます。従ってゴールポジションにはReadDataと書きます。
-    fd_DXWriteWordData (1, 30, ReadData);+ fd_DXWriteWordData (1, 30, ReadData); 
 +ReadDataの前に&は付けません。変数の前に&を付けるとその変数のアドレスになります(アドレスについては[[Chapter1.4のアドレス>FDIII-HC Starter Kit Guide Chapter1.4#b45fcfd3]]を参照して下さい)。 
 +ゴールポジションに書き込むのは、ReadDataのアドレスではなく、ReadDataに入っている値です。 
 + 
 +**ゴールポジションと音量最大保持値のデータ範囲 [#p2dbd58e] 
 +ゴールポジションのデータの範囲は0~1023でした。


トップ   差分 リロード印刷に適した表示   全ページ一覧 単語検索 最新ページの一覧   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom