[H8-ML(2423)] C言語での掛け算について
From: Kimitsugu Nakao <nakao@xxxxxxxxxxxxxxxxxxxxx>
Date: 2002年11月24日(日)12時27分54秒
四国ポリテクカレッジの中尾と申します。

 H8/3048FのプログラムをCygwin+gccで行っているのですが、次のような掛け算
を行うとうまく行きません。A/D、D/Aはきちんと動作しているのを確認しました。
入力には方形波を入力しています。

//A/D変換終了割り込み
unsigned long temp1 = 0;
unsigned short input_data = 0;
void ad_end()
{
  outb(H8ADC+H8ADC_ADCSR, inb(H8ADC+H8ADC_ADCSR) & ~H8ADCSR_ADF);	/* A/D変換終了フラグをクリア */
  input_data = inb(H8ADC + H8ADC_ADDRAH);		/* A/D変換値上位8bit取得 */
  input_data = input_data << 8;
  input_data = input_data | inb(H8ADC + H8ADC_ADDRAL);	/* A/D変換値下位8bit取得 */

  input_data = input_data >> 1;		/* Q.15フォーマットに変換する */
  temp1 = input_data * 0x745d;			/* temp1にはQ.30フォーマットで保存される */
  outb(H8DAC + H8DAC_DADR0, (unsigned char)(input_data >> 21));
  asm("bnot	#0, @0xffffca:8");		/* デバッグ用LED出力 */
}

 掛け算を行わなければうまく行くのですが、掛け算を行うとうまく行きません。
掛け算を行うと出力が0になってしまいます。アセンブラに変換して確認したので
すがきちんとできているようでした。
 何かヒントなどを教えていただければ幸いです。

-----------------
四国職業能力開発大学校
中尾 亀三継
nakao@xxxxxxxxxxxxxxx
スレッド概略
[表示中](起点)
 ├[2424(1)]
 └[2425(2)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]