現在「ARBOR製 EmCORE-i2501」のデジタルI/Oを使用しいと考えております。
具体的には、Inputに信号が入ってきたら文字を表示させたいと思っています。
マニュアルをダウンロードしC言語でのサンプルコードを見てみましたが、何をしているのか今一ピント来ません。
丸々コピペしたところエラーが出てしまいました。以下に環境とコードの一部、エラー内容を記載します。、コンパイルしたところ以下のようなエラーが出てしまいました。
環境
Ubuntu12.04 GCCコンパイラ
#include “math.h”
#include “stdio.h”
#include “dos.h”
#define SIO_ID 0x1010
#define SIO_INDEX 0x4E
#define SIO_DATA 0x4F
#define SIO_EN 0x87
#define SIO_DN 0xAA
#define LDN_ADDR 0x07
bool __fastcall TForm1::Check_ID(void)
{
DWORD iData;
SetPortVal(SIO_INDEX,SIO_EN,1); // SIO - Enable
SetPortVal(SIO_INDEX,SIO_EN,1);
SetPortVal(SIO_INDEX,SIO_EN,1);
SetPortVal(SIO_INDEX,0x01,1);
SetPortVal(SIO_INDEX,0x55,1);
SetPortVal(SIO_INDEX,0x55,1);
SetPortVal(SIO_INDEX,LDN_ADDR,1); // LDN - Configure Control
SetPortVal(SIO_DATA,0x04,1);
SetPortVal(SIO_INDEX,0x20,1); // ID Address
GetPortVal(SIO_DATA,&iData,1);
iID = iData;
SetPortVal(SIO_INDEX,0x21,1);
GetPortVal(SIO_DATA,&iData,1);
iID = ( iID << 8 ) + iData;
Label18->Caption = “ID : “ + IntToHex((int)iID,3);
SetPortVal(SIO_INDEX,SIO_DN,1); // SIO - Disable
if( iID == SIO_ID ) return true;
return false;
}
//---------------------------------------------------------------------------
unsigned char __fastcall TForm1::GPIO_Set(unsigned oMode,unsigned char oData)
{
DWORD iData;
// SIO - Enable
SetPortVal(SIO_INDEX,SIO_EN,1);
SetPortVal(SIO_INDEX,SIO_EN,1);
// LDN - GPIO
SetPortVal(SIO_INDEX,LDN_ADDR,1);
SetPortVal(SIO_DATA,0x06,1);
// GPIO5 - Mode
SetPortVal(SIO_INDEX,0xA0,1);
SetPortVal(SIO_DATA,oMode,1);
// GPIO5 - Data
SetPortVal(SIO_INDEX,0xA1,1);
SetPortVal(SIO_DATA,oData,1);
// GPIO5 - Status
SetPortVal(SIO_INDEX,0xA2,1);
GetPortVal(SIO_DATA,&iData,1);
// SIO - Disable
SetPortVal(SIO_INDEX,SIO_DN,1);
return iData;
}
//---------------------------------------------------------------------------
bool __fastcall TForm1::DIO_Test(int iPIN)
{
int i = iPIN;
bool bTest = true;
unsigned char InData;
unsigned char oMode[8] = {0x0F,0x0F,0x0F,0x0F,0xF0,0xF0,0xF0,0xF0};
unsigned char oDataL[8] = {0xF7,0xFD,0xFE,0xFB,0xEF,0xDF,0xBF,0x7F};
unsigned char oDataH[8] = {0xF8,0xF2,0xF1,0xF4,0x1F,0x2F,0x4F,0x8F};
unsigned char iData[8] = {0x10,0x20,0x40,0x80,0x08,0x02,0x01,0x04};
InData = GPIO_Set(oMode[i],oDataL[i]) & iData[i]; // Low Test
if( !(InData == 0x00) ) bTest = false;
InData = GPIO_Set(oMode[i],oDataH[i]) & iData[i]; // Hi Test
if( !InData ) bTest = false;
return bTest;
}
//---------------------------------------------------------------------------
エラー: ‘DWORD’ was not declared in this scope
エラー: expected ‘;’ before ‘iData’
エラー: ‘SetPortVal’ was not declared in this scope
変数が宣言されていないというエラーだと思うのですが、どのような形で宣言すればいいのかわかりません。
サポートに連絡したところ、技術的な問合せは受けられないという事で困っている状況です。
マニュアルを添付しておきます。何かアドバイス等あればよろしく御教示お願い致します。