#define START_TASK 1 #define STOP_TASK 2 struct my_msg_struct { int command; int resolution; // 1 周期分の sin 波形を, 何点のデータで構成するか double sampling_period; // サンプリング周期 [sec] int recording_samples; // 記録するデータの点数 int canceling_samples; // 記録せずに捨てるデータの点数 int spk_num; // スピーカ番号 0:SPK2, 2:SPK1 float amp; // 正弦波の振幅 [V] }; #define BUF_LEN 4 #define SAMPLING_PERIOD 200e-6 #define LENGTH_MAX 2500 // 最大データ長 0.5 [sec] (勝手に決める) / 最小サンプリング周期 200 [μsec] #define PERIOD_MAX 500 // 1 / 最小テスト周波数 / 最小サンプリング周期 #define F10_LOW 1. // 掃引する周波数の下限値(常用対数) 10 Hz #define F10_HIGH 3.0 // 掃引する周波数の上限値(常用対数) 1kHz #define AMP_CH0 3.0 // distortion occurs when 4.0(V) due to limitation of pow. amp. #define AMP_CH1 3.0 #define F10_STEP 0.01 // 掃引する間隔 #define LOOP 1 // 下限値から上限値まで, 何回掃引するか #define WAITING_TIME 0.5 // 周波数を設定してからデータを取り込むまでの, 待ち時間 // #define SKIP // テスト周波数がロータの基本周波数に近い場合には,スキップする // #define DEBUG // 単一周波数(pow(10,F10_LOW))の時間応答を出力する場合 // #define SP_CH 0 // 0 ... 2 次音源,1 ... 1 次音源