[H8-ML(4029)] Re: W32/SWEN.A from dion.ne.jp...
From: "T.Higashiura" <higashi@xxxxxxxxxx>
Date: 2003年10月16日(木)15時43分32秒
siroさん

東浦と申します。

3664ハードウェアマニュアルを見て戴くと、判ると思いますが
A/D変換結果を格納するレジスタは4つしかありません。
そのため、1回の割り込みで4チャンネル分しか読めません。
お気付きの通 Timer5にはTimer1と同じになるはずです。

フラグ等を使用して、グループ0とグループ1を割り込み毎に
切り替えて読み込む処理に変更すれば、ご希望の結果が得られ
ると思います。


> いったん4つのADを読み込み次にグループを切り替えて最後のADを読もうと
> してるのですが旨くいきません。
> 始めの4つは読めるのですが、最後のひとつが旨く出ません。
> なんとなく一番初めのデータと同じようなものが出ている気がします。
> ADを5チャン又は8チャンネル読もうとすると設定がいるのでしょうか。
> ADは割り込み処理で使用しています。
> チャンネル5の設定をしなければ問題なく読めるのですが。

> 詳しい方いましたら教えて下さい。
> void ad_INT(void)
> {
> static unsigned char adch  = 0;
> static unsigned int  data;
> 
>  data = AD.CSR.BYTE;
>  AD.CSR.BIT.ADF = 0;
>
>    Timer1 = AD.DRA >> 8;
>    Timer2 = AD.DRB >> 8;
>    Timer3 = AD.DRC >> 8;
>    Timer4 = AD.DRD >> 8;
> 
>    AD.CSR.BIT.CH  = 4;
>    Timer5 = AD.DRA >> 8;  <<A/D変換に時間が掛かるので、ここではチャンネル5
               のA/D変換値は格納されていない。
>  }
> コンパイラは日立のコンパイラを使用しています。
> 以上
> 
> 
> 
スレッド概略
[4022(R)](起点)
 └[4028(U)]
   └[表示中]


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


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