テクニカルリファレンス< CNT-3204MT-LPE, CNT32-4MT(LPCI), CNT32-4MT(CB)>
18/19
2007 年 5 月 7 日
【サンプルプログラム例】
/*-----------------------------------------------------------------------------
CNT32-4MT(**) Sample Input Counter 0ch Ver. 1.00
-----------------------------------------------------------------------------*/
/* ----- Initialize -------------------------------------------------------- */
outpw(address+0x08, 0x0008); /*
動作モード設定
*/
outpd(address+0x0c, 0x00000022); /*
差動入力、
CW=UP
、
2
相入力、同期、
4
逓倍
*/
outpw(address+0x08, 0x0010); /*
プリセットレジスタ設定
*/
outpd(address+0x0c, 0x00000000); /*
データ
"00000000"
設定
*/
// outpw(address+0x08, 0x0018); /*
比較レジスタ
0
設定
(
未使用の場合は設定不要
)*/
// outpd(address+0x0c, 0x00001000); /*
データ
"00001000"
設定
*/
// outpw(address+0x08, 0x0020); /*
比較レジスタ1設定
(
未使用の場合は設定不要
)*/
// outpd(address+0x0c, 0x00002000); /*
データ
"00002000"
設定
*/
// outpw(address+0x08, 0x0028); /*
制御出力設定
(
未使用の場合は設定不要
)*/
// outpd(address+0x0c, 0x00000000); /*
ワンショットパルス
10
μ
s
、汎用出力
*/
outpw(address+0x08, 0x0030); /* Z
相入力設定
*/
outpd(address+0x0c, 0x00000001); /*
無効
*/
outpw(address+0x08, 0x003c); /*
プリセットデータロード
*/
outpd(address+0x0c, 0x0000000f); /*
全チャネルロード
*/
/* ----------- Counter Start ---------------------------------------------- */
outpw(address+0x04, 0x0001); /* Ch0
のみスタート
*/
/* ----------- Test Pulse Output ------------------------------------------ */
// outpw(address+0x08, 0x003e); /*
テストパルス設定コマンド
(
未使用の場合は設定不要
)*/
// outpd(address+0x0c, 0x0003); /*
テストパルスを内部に出力
(
未使用の場合は設定不要
)*/
/* ----- Read Data -------------------------------------------------------- */
while (1) {
outpw(address+0x02, 0x00ff); /*
全チャネルラッチ
*/
outpw(address+0x00, 0x0000); /*
チャネル
0
のカウント値読み出しを指定
*/
cntdata = inpd(address+0x00); /*
カウント値を読み出し
(DWord
アクセス以外不可
)*/
outpw(address+0x08, 0x003f); /*
ステータスリードコマンド指定
*/
stsdata = inpd(address+0x0c); /*
ステータスを読み出し
*/
printf("CountData StatusData"); /*
カウント値、ステータス表示
*/
printf("%08ld %02x ", cntdata, stsdata );
}