[H8-ML(1104)] Re: 内蔵I/O編 2.14 ブロック転送について
From: 廣田 正孝 <mhirota@xxxxxxxxxxxxx>
Date: 2001年04月24日(火)12時55分07秒
  後藤さん、こんにちは。廣田@本庄です。
Kohya Gotoh wrote:
> 
> もしくは、下のCPU割り込みを消しとけば良かったんですね
> "138            BSET    #DTIE,@DTCR0A"
 消すと、DMA終了後の割り込みが発生しなくなりますから、1回目の
DMA終了後の割り込み時のDMAC初期設定が出来なくなり、動きが
変わってきてしまいます。

 
> もともとのプログラム、
> アプリケーションノート 内蔵I/O編 163ページには
> "128            BTST    #DTME,@DTCR0B"
> と記述されてます。NIM割込みを使うって事ですよね。

 違います。NIM(NMIの間違い?)なんて使っていません。マニュアルの
DMACの起動要因のところを見てください。NMIは起動要因になっていま
せん。
マニュアルでDMAとNMIとの関係に触れているのは
「ブロックDMA途中でNMIが発生するとDMAの途中でDTME=0となり、
DMAが動作途中で止まってしまうから処理に注意してね。」と
あるのです。
 ここで、DTMEビットをチェックしているのは、単にDTMEビットが
LOWになるのを待っているだけです。
なぜ、ここに待ちループがあるのかは解りません。どちらにしても
数行前でDTMEビットを0に設定していますから0のはずでこのループ
はループしないでしょう。

> だけど、アプリケーションノート 内蔵I/O編 157ページには、
> 外部信号としてDREQを使うようになってます。
> 
> ★それで、DREQ0を使うように修正したんです。
> "128'           BTST    #DREQ0,@PBDR"

 DREQ0pinはDMACが監視しているpinですからCPUのプログラムで
監視する必要はありません。
DMA=CPUが知らないところで起動し、実行し、終了し、終わった事を
CPUに知らせるのです。


> その時
> "138            BSET    #DTIE,@DTCR0A"
> は必要なくなったんですよね。
 DMAC動作が終了したことを知らせる手段は終了割り込みしかありま
せん。DTIE=1としなければ割り込みが発生しなくなりますから
CPUはDMACの動作を常時監視しなければならないためDMACの存在意味が
無くなります。

LEDがつかない原因は今までのお話から推測出来ます。
だめもとですが、
BLKMN:  .EQU    $

        MOV.L   #H'FFFEFE,SP    ;スタックポインタを設定する

        MOV.B   #H'FF,R0L
        MOV.B   R0L,@P5DDR              ;ポートを出力に設定
        MOV.B   R0L,@P9DDR
        MOV.B   R0L,@PADDR
        MOV.B   #H'00,R0L
        MOV.B   R0L,@PBDDR              ;ポートを入力に設定

        MOV.B   R0L,@P5DR               ;出力ポートを"L"に設定
        MOV.B   R0L,@P9DR
        MOV.B   R0L,@PADR
なっているところを
BLKMN:  .EQU    $

        MOV.L   #H'FFFEFE,SP    ;スタックポインタを設定する

        MOV.B   #H'FF,R0L
        MOV.B   R0L,@P5DDR              ;ポートを出力に設定
        MOV.B   R0L,@P9DDR
        MOV.B   R0L,@PADDR
        MOV.B   #H'00,R0L
        MOV.B   R0L,@PBDDR              ;ポートを入力に設定

        MOV.B   R0L,@P5DR               ;出力ポートを"L"に設定
        MOV.B   R0L,@P9DR
        MOV.B   R0L,@PADR
BLKMN2:				<-ここにラベルを追加。
とし、
DMAC終了割り込みベクタをBLKMN2としてみて下さい。
原因はBLKMN2:ラベルの上の3行にあるはずです。


-- 
/******************************************************************************
Name: 廣田 正孝 "Masataka Hirota"
E-mail address:  mhirota@xxxxxxxxxxxxx
                 GCD03040@xxxxxxxxxxx
******************************************************************************/

スレッド概略
[1098(R)](起点)
 └[1102(U)]
   └[表示中]
     └[1105(1)]


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


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