/***************** Define A821 Register Address *****************/ #define TIMER0 0x00 /* 8254 timer/counter_0 */ #define TIMER1 0x01 /* 8254 timer/counter_1 */ #define TIMER2 0x02 /* 8254 timer/counter_2 */ #define TIMER_MODE 0x03 /* 8254 control register */ #define AD_LO 0x04 /* AD, Low Byte */ #define AD_HI 0x05 /* AD, High Byte */ #define DA_CH0_LO 0x04 /* DA, Channel 0, Low byte */ #define DA_CH0_HI 0x05 /* DA, Channel 0, High byte */ #define DA_CH1_LO 0x06 /* DA, Channel 1, Low byte */ #define DA_CH1_HI 0x07 /* DA, Channel 1, High byte */ #define DI_LO 0x06 /* DI, Low byte */ #define DI_HI 0x07 /* DI, High byte */ #define DO_LO 0x0D /* DO, Low byte */ #define DO_HI 0x0E /* DO, High byte */ #define AD_READY 0x08 /* AD finish for A821PG */ #define CLEAR_IRQ 0x08 /* AD, Clear Interrupt Request */ #define SET_GAIN 0x09 /* AD, Gain Control */ #define SET_CH 0x0A /* AD, Multiplexer Control */ #define SET_MODE 0x0B /* AD, Mode Control */ #define SOFT_TRIG 0x0C /* AD, Software Trigger Control */ /*** define AD Trigger/Transfer Mode ***/ #define POLLING_MODE 1 /* Software Trig, Software Transfer (Polling)*/ #define DMA_MODE 2 /* Pacer Trig, DMA Transfer */ #define INTERRUPT_MODE 6 /* Pacer Trig, Software/Interrupt Transfer*/ /*** define the AD Gain Code ***/ #define A821_BI_1 0 #define A821_BI_10 1 #define A821_BI_100 2 #define A821_BI_1000 3 #define A821_UNI_1 4 #define A821_UNI_10 5 #define A821_UNI_100 6 #define A821_UNI_1000 7 #define A821_BI_05 8 #define A821_BI_5 9 #define A821_BI_50 10 #define A821_BI_500 11 /*** define the error number ***/ #define NoError 0 #define CheckBoardError 1 #define CheckDmaError 2 #define CheckIrqError 3 #define CardNumError 4 #if defined __cplusplus extern "C" { #endif int FAR PASCAL _export A821_ActiveBoard(int BoardNo); int FAR PASCAL _export A821_Check_Address(int BaseAddr); int FAR PASCAL _export A821_Initialize(int CardNo,int BaseAddr,int DmaNo, int IrqNo); unsigned FAR PASCAL _export A821_DI(void); void FAR PASCAL _export A821_DO(unsigned DigitOutput); void FAR PASCAL _export A821_DA(int Channel,unsigned data); void FAR PASCAL _export A821_AD_SetChGainMode(int Ch,int Gain,int Mode); void FAR PASCAL _export A821_AD_PollingArray(int FAR *Buffer,unsigned Length); unsigned FAR PASCAL _export A821_AD_PollingVar(void); void FAR PASCAL _export A821_AD_INT(int Ch,int Gain, unsigned int count, int FAR *Buffer2, int c1, int c2); unsigned FAR PASCAL _export A821_AD_INT_Count(void); void FAR PASCAL _export A821_AD_INT_Stop(void); int FAR PASCAL _export A821_Delay(unsigned int DownCount); unsigned FAR PASCAL _export A821_InputByte(int Address ); void FAR PASCAL _export A821_OutputByte(int Address, int val); #if defined __cplusplus } #endif