• 締切済み

DMA

頭の悪い技術者です。教えてください。 UART受信割り込みを要因として、DMA転送をしたいと思っています。 DMA転送カウンタは50回で設定している(50byte転送なので)のですが、もし通信エラー(オーバーラン等)が発生すると、エラー割り込み処理が起動してしまいます。(起動をやめることはできません) 通信エラーが発生した場合、DMA転送カウンタは0にならないのでしょうか?御教授お願いします。

みんなの回答

  • caceres
  • ベストアンサー率43% (61/140)
回答No.2

ならないというより割り込み内でDMAを操作すれば良いだけです。 エラーが起きている時にそんなデータいらないでしょ。 読み捨てて送り側のリトライタイミングを見計らってリセットし再度受信準備すれば良いです。  RS232Cの場合は普通、送受信でタイミングのお約束はするはずですからそれに沿うように組めると思いますが。 都合のいいように動いてくれればよいですがなかなか思うようにいかないですよね。 マニュアルをよく読み、対応されては如何でしょうか。 もしかしたら設定でそのような機能が有るかもしれませんよ。 チップが何だか判らないので答えようもありません。まずは資料を読んで下さい。

  • chubou3
  • ベストアンサー率23% (264/1130)
回答No.1

マイコンの種類等を書き、具体的に「こがわからない」と示していただかないとアドバイスできないですよ。 エラー割り込みでDMA関係のレジスタをリセットすればよろしいのではないでしょうか?

関連するQ&A