<所定ビット出力:8V以上の場合DOボード出力する>
・aData[i]・・・・8CH分のアナログデータ
・デジタルボード出力グループ(BASE ADDRESS+ 0x04 ~ 0x07)
・wDigitalData・・・デジタルボードのグループに出力するデータ
-----------------------------------------------------------------
for( i = 0 ; i < CH_CNT;i++){
if( aData[i] >= VAL_8V){
/*取り込みデータが8V以上の場合CHに対応したビットONにする*/
wDigitalData = wDigitalData | (0x01 << i);
}
}
if (デジタルボード検出できている場合){
outbyte(デジタルボードベースアドレス + 0x04,wDigitalData);
}
<100ms周期DO出力スレッド>
void DOBlinkCtrlThread(void)
{
int ctrlSW; // ON/OFF制御状態フラグ
ctrlSW = 0;
while (1)
{
RtSleep(100);
/* 100ms周期でデジタルボードを点滅させる*/
if(ctrlSW == 0){
/* DOビッドON状態に設定 */
outbyte(strInfo.digitalAdd + 0x05 ,0xFF);
ctrlSW = 1;
}else{
/* DOビッドOFF状態に設定 */
outbyte(strInfo.digitalAdd + 0x05 ,0x00);
ctrlSW = 0;
}
}
}
|