計測制御技術ラウンジ >> GPIB技術ラウンジ 全部 1- 最新50

C言語での作成方法

5 名前: 匿名488 投稿日:2003/12/15(月) 16:14 ID:???
>要するにリードレジスタとライトレジスタはアドレスが同じ

 これは、「レジスタ」という名称から、メモリを想像
 されているのだと思います。
 たしかに「レジスタ」そのものはメモリ相当だとは思いますが、リードアクセス時と
 ライトアクセス時で別の領域が割り当てられるので、
 (わかりにくいですが)同じアドレスで大丈夫です。

 ただし、いくつかの拡張レジスタの中には、
 あらかじめアドレスを特定のレジスタに書き込むことで
 複数の拡張レジスタを使い分けている物があります。

 そのようなレジスタに書き込みする際には、

 out レジスタ選択レジスタ?,レジスタ番号指示データ
 out 共有レジスタアドレス,データ

 のように、
 読み出しの際にも

 out レジスタ選択レジスタ?,レジスタ番号指示データ
 in  R0,共有レジスタアドレス

 のようにしなければいけないとおもいます。

 なお、この2つの命令の間で他のタスクに制御が
 うつるとレジスタ指定が壊れますので
 (2つのシーケンスは不可分)
 そのあたりに配慮する必要があります。

 うっかり忘れると、原因不明のバグに悩まされることに
 なります。

新着レスの表示

名前 : E-mail(省略可) :

文責:計測制御技術ラウンジ, Powered by ©タカヒロ@みちのく掲示板 [12ch BBS 2.03]