📄 paras.pas
字号:
{ Get Or Set DI Interrupt Mode: }
{ Data Type: }
{ BYTE Array. }
{ One byte for a port. The Interrupt mode's explanation varies }
{ with different card }
CFG_DiInterruptMode = $3C90;
{-----------------------2.2------------------------}
{ ---------------------------------- }
{ 0x4000 ~ 0x4fff for DO Group }
{ ---------------------------------- }
{ sub group 0x4000 ~ 0x47ff for DO General ID }
{ sub group 0x4800 ~ 0x4fff for DO others ID }
CFG_DoOperationMode = $4800; { Normal (0), Handahaking (1), Burst handshaking(2)}
CFG_DoStartMethod = $4801; { Software(1), External signal(2)}
CFG_DoStopMethod = $4802; { Software(1), External signal(2)}
CFG_DoPacerSource = $4803; { 30, 15, 10 Mhz, Counter1, External signal (value range 1-5)}
CFG_DoControlSignals = $4804; { Control signals }
{ Bit 0: External DO start signal control (STRRF), 0 rising edge, 1 falling edge. }
{ Bit 1: External DO stop signal control (STPRF), 0 rising edge, 1 falling edge.}
{ Bit 2: DO request signal control (REQRF), 0 rising edge, 1 falling edge.}
{ Bit 3: DO acknowledge signal control (ACKRF), 0 rising edge, 1 falling edge.}
{ Bit 4: DO sampling clock signal control (CLKRF), 0 rising edge, 1 falling edge}
CFG_DoPresetValue = $4805; { DO status before transfering.}
{ Get DO data width. The optimized data width when writing. }
{ }
{ Data type: LONG. }
{ Find the used value from Variable Group. }
CFG_DoDataWidth = $4806;
{ Get DO Channel Count. Max available DO channel count on the card. }
{ }
{ Data type: LONG. }
CFG_DoChannelCount = $4807;
{ Get Do Port Count. Max available DO Port count on the card. }
{ }
{ Data type: LONG. }
CFG_DoPortCount = $4808;
{ Get / set DO Transfer Request mode }
{ Data type: ULONG }
{ 0: slave mode, 1 master mode }
CFG_DoTransferRequestMode = $4809;
{ --------------------------------------- }
{ 0x5000 ~ 0x5fff for Counter/Timer }
{ --------------------------------------- }
{ sub group 0x5000 ~ 0x57ff for Counter/Timer general ID }
CFG_CounterCountValue = $5000; { 82C54 Counter 0-2 value}
{Get Counter channels' capability. }
{ }
{Data type: Long Array. }
{ One 'Long' for one channel, each bit of the long indicates }
{a specified function whether is available or not and the }
{following function has been defined. }
CFG_CntrChannelCapability = $5001;
{ Get supported gate of the counter. }
{ }
{ Data type: Long. }
{ Each bit for a specified gate mode and the }
{ following mode has been defined. }
CFG_CntrSupportedGateMode = $5002;
{ Get supported counting edge of the counter. }
{ }
{ Data type: Long. }
{ Each bit for a specified counting edge and the }
{ following bit has been defined. }
CFG_CntrSupportedCountEdge = $5003;
{ Get supported output mode of the counter when terminal count reached. }
{ }
{ Data type: Long. }
{ Each bit for a specified output mode and the }
{ following mode has been defined. }
CFG_CntrSupportedOutMode = $5004;
{ Get available special api of the counter }
{ }
{ Data type: Long. }
{ Each bit for a specified api and the }
{ following has been defined. }
CFG_CntrAvailableAPI = $5005;
{ Get event id of the channel which can issue event. }
{ }
{ Data type: USHORT Array. }
{ One 'USHORT' for one channel, 0 indicates the channel can't }
{ issue event. }
CFG_CntrChannelEventID = $5006;
{ Get the internal clock frequence device used for pulse out, }
{ PWModulation or timer interrupt, etc... }
{ }
{ Data type: float array. }
{ Each element of array is a clock frequence value the device }
{ supported and the frequence should be sorted from lower to higher.}
CFG_CntrInternalClockFreq = $5007;
{ Get the validate range of period and HiPeriod of PWModulation function. }
{ data type: float array }
{ the data order in array: }
{ [min_period][max_period][min_hiperiod][max_hiperiod] }
CFG_CntrPWModulateValidRange = $5008;
{ sub group 0x5800 ~ 0x5fff for counter/Timer general ID }
{Get the counter channel count}
{data type: LONG}
CFG_CntrChannelCount = $5009;
{Get the counter resolution}
{data type: LONG array}
CFG_CntrResolution = $5010;
{Get or set the counter reset value}
{data type: ULONG array}
CFG_CntrResetValue = $5011;
{Get the counter supported event type}
{data type: LONG array}
{ One 'LONG' for one event type}
CFG_Cntr0SupportedEventType = $5012;
CFG_Cntr1SupportedEventType = $5013;
CFG_Cntr2SupportedEventType = $5014;
CFG_Cntr3SupportedEventType = $5015;
CFG_Cntr4SupportedEventType = $5016;
{Get the counter supported lock type}
{data type: LONG array }
CFG_CntrSupportedCounterLock = $5017;
{Get or set the counter lock}
{data type: LONG array}
CFG_CntrCounterLockControl = $5018;
{Get the counter supported indicator type}
{data type: LONG array}
CFG_CntrSupportedIndicator = $5019;
{Get or set the counter indicator status}
{data type: LONG array}
CFG_CntrIndicatorControl = $5020;
{Get the counter supported clock frequency}
{data type: LONG array}
CFG_Cntr0SupportedClockFrequency = $5021;
CFG_Cntr1SupportedClockFrequency = $5022;
CFG_Cntr2SupportedClockFrequency = $5023;
CFG_Cntr3SupportedClockFrequency = $5024;
CFG_Cntr4SupportedClockFrequency = $5025;
{Get or set the current counter clock frequency}
{data type: LONG array}
CFG_CntrClockFrequency = $5026;
{Get the counter supported input mode}
{data type: LONG array}
CFG_Cntr0SupportedInputMode = $5027;
CFG_Cntr1SupportedInputMode = $5028;
CFG_Cntr2SupportedInputMode = $5029;
CFG_Cntr3SupportedInputMode = $5030;
{Get or set the current counter input mode}
{data type: LONG array}
CFG_CntrInputModeControl = $5031;
{Get or set counter compare data}
{data type: ULONG array}
CFG_CntrCompareData = $5032;
{Enable or Disable counter digital filter}
{data type: LONG array}
CFG_CntrDigitalFilter = $5033;
{Enable or Disable Index Reset}
{data type: LONG}
{Each bit represent one counter channel}
CFG_CntrIndexReset = $5034;
{ Other ID }
CFG_IrqDiChangeStatusChannel = $6000; { Change status channel number. }
CFG_IrqDiTriggerSignals = $6001; { Each bit for each Auxiliary DIO channel }
CFG_LoopBackTest = $6002; { Loop back test for MIC-3755 }
{-----------------------2.2------------------------}
CFG_WatchdogCounter = $7000; { Watchdog counter. }
CFG_DoWatchdogValue = $7001; {Do status when watchdog overflow}
CFG_EEPROM_RWBYTE = $8000; {Read/Write a word to the EEPROM}
CFG_PrivateHWRegionSize = $8001; {Customer private region size 32 bytes}
{-----------------------2.2------------------------}
{ ============================================================================ }
{ Constant Variable Group }
{ ============================================================================ }
{ Used by CFG_DioPortType ID }
DIO_PortType_DI = $0; { input port }
DIO_PortType_DO = $1; { output port }
DIO_PortType_SeperateDIO = $2; { bi-direction port }
DIO_PortType_8255_PortA = $3; { 8255 mode 0 port A type }
DIO_PortType_8255_PortC = $4; { 8255 mode 0 port C type }
DIO_PortType_Individual = $5; { each channel can be set individually }
{ Used by CFG_DioChannelDirection ID }
DIO_ChannelDir_DI = $0;
DIO_ChannelDir_DO = $000000ff;
DIO_ChannelDir_LowHalf_DO = $0000000f;
DIO_ChannelDir_HighHalf_DO = $000000f0;
DIO_ChannelDir_Invalid = $ffffffff;
DIO_ChannelDir_SeperateDIO = $0000ff00;
{ Used by CFG_DiDataWidth ID }
DI_DataWidth_Byte = $0;
DI_DataWidth_Word = $1;
DI_DataWidth_DWORD = $2;
{ Used by CFG_DoDataWidth ID }
DO_DataWidth_Byte = $0;
DO_DataWidth_Word = $1;
DO_DataWidth_Dword = $2;
{ Used by CFG_DiInterruptSupportedTriggerMode ID }
DI_Int_SingleEdgeTrigger = $0; { trigger on rising or falling edge.}
DI_Int_DualEdgeTrigger = $1; { trigger on rising or falling or both edge.}
{ used by CFG_CntrChannelCapability }
CNTR_ChlCap_EventCounting = $1;
CNTR_ChlCap_FreqMeasurement = $2;
CNTR_ChlCap_PulseWidthMeasurement = $4;
CNTR_ChlCap_TimerInterrupt = $8;
CNTR_ChlCap_CounterInterrupt = $10;
CNTR_ChlCap_PulseWidthModulation = $20;
CNTR_ChlCap_PulseOut = $40;
CNTR_ChlCap_FreqOut = $80;
CNTR_ChlCap_WatchDogTimer = $100;
CNTR_ChlCap_CascadeWithNext = $200;
CNTR_ChlCap_CascadeWithPrev = $400;
{ used by CFG_CntrSupportedGateMode }
CNTR_GateMode_NoGate = $1; { no gate signal( the gate will be set by software internally).}
CNTR_GateMode_HighLevel = $2; { High level active }
CNTR_GateMode_LowLevel = $4; { Low level active }
CNTR_GateMode_RisingEdge = $8; { Rising edge active }
CNTR_GateMode_FallingEdge = $10; { Falling edge active }
{ used by CFG_CntrSupportedCountEdge}
CNTR_CountEdge_RisingEdge = $1; { Rising edge counting }
CNTR_CountEdge_FallingEdge = $2; { Falling edge counting }
{ used by CFG_CntrSupportedOutMode }
CNTR_OutMode_HighPulse = $1; { Pin OUT_N outputs high pulse when the terminal count reached. }
CNTR_OutMode_LowPulse = $2; { Pin OUT_N outputs low pulse when the terminal count reached. }
CNTR_OutMode_LowToHigh = $4; { Pin OUT_N toggles from low to high when the terminal count reached.}
CNTR_OutMode_HighToLow = $8; { Pin OUT_N toggles from high to low when the terminal count reached.}
{ used by CFG_CntrAvailableAPI }
CNTR_API_CounterConfig = $1;
CNTR_API_DICounterReset = $2;
CNTR_API_QCounterAPI = $4;
implementation
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -