|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using System.Text;
|
|
|
using System.Runtime.InteropServices;
|
|
|
|
|
|
namespace USB2XXX
|
|
|
{
|
|
|
class USB2CNT
|
|
|
{
|
|
|
//定义函数返回错误代码
|
|
|
public const Int32 CNT_SUCCESS = (0); //函数执行成功
|
|
|
public const Int32 CNT_ERR_NOT_SUPPORT = (-1); //适配器不支持该函数
|
|
|
public const Int32 CNT_ERR_USB_WRITE_FAIL = (-2); //USB写数据失败
|
|
|
public const Int32 CNT_ERR_USB_READ_FAIL = (-3); //USB读数据失败
|
|
|
public const Int32 CNT_ERR_CMD_FAIL = (-4); //命令执行失败
|
|
|
//计数器模式
|
|
|
public const Byte COUNTER_MODE_UP = 0;
|
|
|
public const Byte COUNTER_MODE_DOWN = 1;
|
|
|
//计数器触发条件
|
|
|
public const Byte COUNTER_POL_RISING = 0;
|
|
|
public const Byte COUNTER_POL_FALLING = 1;
|
|
|
public const Byte COUNTER_POL_BOTHEDGE = 2;
|
|
|
//计数器宽度
|
|
|
public const Byte COUNTER_BITS16 = 16;
|
|
|
public const Byte COUNTER_BITS32 = 32;
|
|
|
//计数器输入引脚模式
|
|
|
public const Byte COUNTER_PIN_NOPULL = 0x00;
|
|
|
public const Byte COUNTER_PIN_UP = 0x01;
|
|
|
public const Byte COUNTER_PIN_DOWN = 0x02;
|
|
|
//计数器通道定义
|
|
|
public const Byte COUNTER_CH0 = 0x01;
|
|
|
public const Byte COUNTER_CH1 = 0x02;
|
|
|
public const Byte COUNTER_CH2 = 0x04;
|
|
|
public const Byte COUNTER_CH3 = 0x08;
|
|
|
//定义初始化UART初始化数据类型
|
|
|
public struct CNT_CONFIG
|
|
|
{
|
|
|
public Byte CounterMode; //计数模式,0-Up,1-Down
|
|
|
public Byte CounterPolarity; //计数极性,0-Rising,1-Falling,2-BothEdge
|
|
|
public Byte CounterBitWide; //计数位宽,16-16bit位宽,32-32bit位宽
|
|
|
public Byte CounterPinMode; //计数器输入引脚模式,0-浮空输入,1-上拉输入,2-下拉输入
|
|
|
}
|
|
|
[DllImport("USB2XXX.dll")]
|
|
|
public static extern Int32 CNT_Init(Int32 DevHandle, Byte ChannelMask, ref CNT_CONFIG pConfig);
|
|
|
[DllImport("USB2XXX.dll")]
|
|
|
public static extern Int32 CNT_Start(Int32 DevHandle, Byte ChannelMask);
|
|
|
[DllImport("USB2XXX.dll")]
|
|
|
public static extern Int32 CNT_Stop(Int32 DevHandle, Byte ChannelMask);
|
|
|
[DllImport("USB2XXX.dll")]
|
|
|
public static extern Int32 CNT_SetValue(Int32 DevHandle, Byte ChannelMask, Int32[] pCntValues);
|
|
|
[DllImport("USB2XXX.dll")]
|
|
|
public static extern Int32 CNT_GetValue(Int32 DevHandle, Byte ChannelMask, Int32[] pCntValues);
|
|
|
}
|
|
|
}
|