スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

転送三昧

今日は昨日の続きでRXのDTCをいじる.
ルネサスのサンプルプログラムではチェーン転送をうまく使いレジスタを制御している.
この手法にインスパイアされ,MTUの割り込みフラグをDTCからクリアしてみることに.
しかし,なぜか割り込みフラグのあるレジスタに別の変数を介して値を転送しても反映されない.
ここでマニュアルとにらめっこすることしばし,「フラグを読んだ後0を書くとクリア」という文言を発見.
DTCで一度レジスタ値をダミーリードしてから0を書くとちゃんとクリアされることが分かった.

一連の試行錯誤でDTCの使い方にだいぶ慣れてきた.
スポンサーサイト

この記事へのコメント

- 通りすがり - 2013年02月12日 00:19:50

こんばんは、いつも読ませてもらってます!
フラグの扱いの件ですが、大変だったようですね。
詳細忘れましたが、
昔、1度読むとクリアされる、という仕様のレジスタがあって、
デバッガでレジスタを見ると消えてしまうため、
デバッガを使うと上手く動作しないということがありました。
ちょっとまずい仕様ではないかと思いました。
こういうの、はまりますよね。
こちらは、シリアル通信でDTCを使ったところ、CPU時間が半減しました。
単純な転送だとDMAの方が嬉しいのですが、DTCでも効果は大きいですね。

- moyane - 2013年02月14日 23:10:28

通りすがりさん,どうも~
実は私のところでもE1デバッガで変数値が正しく表示されない時があるんです.
何か関係があるんでしょうかね・・・
あと,モータ制御用のRX62TはなぜかDMAC付いてないんですよ.
DTCはいろいろできる反面,毎回RAMに転送情報読みに行くのであんまり転送速度が上がらないのが気になってます.
並列処理による高速化が目的だとDTCの転送終了をCPU側で待つようなことはしたくないですよね.

トラックバック

URL :

プロフィール

もやね

Author:もやね
長野県在住の会社員(メカニカル・エンジニア).
ロボットは完全な趣味としてやってます.
E-mail:
mo_ya_ne[a]yahoo.co.jp
[a]⇒@

最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
FC2カウンター
ブログ内検索
RSSフィード
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。