• 締切済み

現在H8/3694Fのマイコンを使っていてKXM52-1050という加

現在H8/3694Fのマイコンを使っていてKXM52-1050という加速度センサから 加速度の電圧値を読み取ろうとしているんですがどうしてもX、Y、Z軸の値が 正常に出ません誰か助けてください。製作環境Gccで製作しています。 ソースはメインプログラムだけですが載せておきます。 void main(void) // メインルーチン { int sw; // swの状態を格納するための変数定義 long k; // A/D変換の変数定義 long ad,sei,syou; // A/D変換の値(整数部,小数部)を格納する変数の定義 long ad1,sei1,syou1; long ad2,sei2,syou2; unsigned long ad_data[3]; // A/D変換結果を格納する配列変数を定義 sw = 0; // swの初期化 set_adc(); // H8 A/Dコンバータを設定する init_lcd(); // LCDをイニシャライズする AD.ADCSR.BIT.ADST = 1; // A/D変換開始 //タクトスイッチが押されるまで、待機 while(1){ while(!AD.ADCSR.BIT.ADF); // 変換終了待ち ad_data[0] = (unsigned long)AD.ADDRA >> 6; // AN0 A/D変換結果を変数(ad_data[0])に格納 ad_data[1] = (unsigned long)AD.ADDRB >> 6; // AN1 A/D変換結果を変数(ad_data[1])に格納 ad_data[2] = (unsigned long)AD.ADDRC >> 6; // AN2 A/D変換結果を変数(ad_data[2])に格納 AD.ADCSR.BIT.ADF = 0; // 変換終了フラグをクリア for( k=0; k<=1; k++){ sw = IO.PDRB.BIT.B7; // swにsw14の状態を格納する ad = (unsigned long) ad_data[0]; // 0~5[V]=0~1023でA/D変換値を取得 sei = ad * 5 / 1023; // 電圧値の整数部1桁 syou = (ad * 5 - sei * 1023) * 100L / 1023; // 電圧値の小数部2桁 for( k=1; k<=2; k++){ ad1 = (unsigned long) ad_data[1]; // 0~5[V]=0~1023でA/D変換値を取得 sei1 = ad1 * 5 / 1023; // 電圧値の整数部1桁 syou1 = (ad1 * 5 - sei1 * 1023) * 100L / 1023; // 電圧値の小数部2桁 for( k=2; k<=3; k++){ ad2 = (unsigned long) ad_data[2]; // 0~5[V]=0~1023でA/D変換値を取得 sei2 = ad2 * 5

みんなの回答

  • YEND77
  • ベストアンサー率56% (21/37)
回答No.1

どのように正常ではないのか症状を記載した方が回答が得られる可能性が高いです。。。

関連するQ&A