DioGetPwmPulsePeriod


Function

Retrieves the PWM pulse period for the specified channel.

Format

Ret = DioGetPwmPulsePeriod( Id , ChNo , ChNum , PulsePeriodValue , PulsePeriodUnit )

Parameters

Id [ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short ]
Specify the device ID retrieved from DioInit.

ChNo [ VB.NET: Short ] [ C, C++: short * ] [ C#: out short ] [ Python: ctypes.POINTER(ctypes.c_short) ]
Specify the start address of the array that stores the channel numbers to get setting.

ChNum [ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short ]
Specify the number of channels specified in ChNo.

PulsePeriodValue [ VB.NET: ULong ] [ C, C++: unsigned long long * ] [ C#: out ulong ] [ Python: ctypes.POINTER(ctypes.c_ulonglong) ]
Specify the start address of the array that stores the PWM pulse period settings.
The pulse period is in combination with the pulse period unit within the following range.

Setting range: 5 usec to 1 sec (in 0.1 usec unit)

PulsePeriodUnit [ VB.NET: UShort ] [ C, C++: unsigned short * ] [ C#: out ushort ] [ Python: ctypes.POINTER(ctypes.c_ushort) ]
Specify the start address of the array that stores the PWM pulse period unit settings.

Definition

Value

[Dec]

Description

DIO_PWM_PULSE_PERIOD_UNIT_S

1

sec unit

DIO_PWM_PULSE_PERIOD_UNIT_MS

2

msec unit

DIO_PWM_PULSE_PERIOD_UNIT_US

3

usec unit

DIO_PWM_PULSE_PERIOD_UNIT_NS

4

nsec unit

Return Value

Ret [ VB.NET: Integer ] [ C, C++: long ] [ C#: int ] [ Python: ctypes.c_long ]

Definition

Value

[Dec]

Description

DIO_ERR_SUCCESS

0

Normal completed.

DIO_ERR_SYS_RECOVERED_FROM_STANDBY

7

Execute DioResetDevice function because the device has recovered from standby mode.

DIO_ERR_DLL_INVALID_ID

10001

Invalid ID specified.

DIO_ERR_DLL_CALL_DRIVER

10002

Not call the driver (Failure on DEVICE I/O CONTROL).

DIO_ERR_DLL_BUFF_ADDRESS

10100

Invalid data buffer address.

DIO_ERR_SYS_NOT_SUPPORTED

20001

This board couldn't use this function.

DIO_ERR_SYS_CH_NO

20105

Channel No. is outside the setting range.

DIO_ERR_SYS_CH_NUM

20106

Channel number is outside the setting range.

DIO_ERR_SYS_DEVICE_ERR_DRIVER_IC_ERR

21200

Driver IC error occurred.

DIO_ERR_SYS_DEVICE_ERR_PCOM_FAILURE

21201

PCOM power failure occurred.

The others (See also: Details of Error Code)

Remarks

Retrieves the PWM pulse period for the specified channel.

The unit of the acquired period is specified by the fifth argument (PulsePeriodUnit).
If the pulse period is less than the specified period unit, the value will be '0', and the function will terminate normally.

Example

Retrieve the PWM pulse period for Channel 0 and Channel 1 in usec units.

VB.NET

Dim Ret As Integer
Dim ChNo(1) As Short
Dim PulsePeriodValue(1) As ULong
Dim PulsePeriodUnit(1) As UShort

ChNo(0) = 0
ChNo(1) = 1
PulsePeriodUnit(0) = DIO_PWM_PULSE_PERIOD_UNIT_US
PulsePeriodUnit(1) = DIO_PWM_PULSE_PERIOD_UNIT_US
Ret = DioGetPwmPulsePeriod( Id , ChNo , 2 , PulsePeriodValue , PulsePeriodUnit )
 

C, C++

long Ret;
short ChNo[2];
unsigned long long PulsePeriodValue[2];
unsigned short PulsePeriodUnit[2];

ChNo[0] = 0;
ChNo[1] = 1;
PulsePeriodUnit[0] = DIO_PWM_PULSE_PERIOD_UNIT_US;
PulsePeriodUnit[1] = DIO_PWM_PULSE_PERIOD_UNIT_US;
Ret = DioGetPwmPulsePeriod( Id , &ChNo[0] , 2 , &PulsePeriodValue[0] , &PulsePeriodUnit[0] );
 

C#

int Ret;
short[] ChNo = new short[2];
ulong[] PulsePeriodValue = new ulong[2];
ushort[] PulsePeriodUnit = new ushort[2];

ChNo[0] = 0;
ChNo[1] = 1;
PulsePeriodUnit[0] = DIO_PWM_PULSE_PERIOD_UNIT_US;
PulsePeriodUnit[1] = DIO_PWM_PULSE_PERIOD_UNIT_US;
Ret = dio.GetPwmPulsePeriod( Id , out ChNo , 2 , out PulsePeriodValue , out PulsePeriodUnit );
 

Python

Ret = ctypes.c_long()
ChNoType = ctypes.c_short * 2
ChNo = ChNoType()
PulsePeriodValueType = ctypes.c_ulonglong * 2
PulsePeriodValue = PulsePeriodValueType()
PulsePeriodUnitType = ctypes.c_ushort * 2
PulsePeriodUnit = PulsePeriodUnitType()

ChNo[0] = 0
ChNo[1] = 1
PulsePeriodUnit[0] = cdio.DIO_PWM_PULSE_PERIOD_UNIT_US
PulsePeriodUnit[1] = cdio.DIO_PWM_PULSE_PERIOD_UNIT_US
Ret.value = cdio.DioGetPwmPulsePeriod( Id , ChNo , 2 , PulsePeriodValue , PulsePeriodUnit )
 

See Also

DioSetPwmPulsePeriod