DioSetPwmPulsePeriod


Function

Sets the PWM pulse period for the specified channel.

Format

Ret = DioSetPwmPulsePeriod ( 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 set.

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 stored the PWM pulse period settings.
The pulse period can be set 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 stored 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_PWM_PERIOD_UNIT

20901

The PWM pulse period unit is out of range.

DIO_ERR_SYS_PWM_RUNNING_PWM

20904

Function is not allowed to be called during the PWM operation.

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)

Initial Value

5 usec

Remarks

Sets the PWM pulse period for the specified channel.

It cannot be executed during PWM operation.

To set the PWM pulse period in 0.1 usec (=100 nsec) unit,
select PulsePeriodUnit = DIO_PWM_PULSE_PERIOD_UNIT_NS and specify the PWM pulse period (PulsePeriodValue) in nanoseconds (nsec).

Example

Set the PWM pulse period to 10 usec for channel 0 and 50 usec for channel 1.

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
PulsePeriodValue(0) = 10
PulsePeriodValue(1) = 50
PulsePeriodUnit(0) = DIO_PWM_PULSE_PERIOD_UNIT_US
PulsePeriodUnit(1) = DIO_PWM_PULSE_PERIOD_UNIT_US
Ret = DioSetPwmPulsePeriod( 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;
PulsePeriodValue[0] = 10;
PulsePeriodValue[1] = 50;
PulsePeriodUnit[0] = DIO_PWM_PULSE_PERIOD_UNIT_US;
PulsePeriodUnit[1] = DIO_PWM_PULSE_PERIOD_UNIT_US;
Ret = DioSetPwmPulsePeriod( 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;
PulsePeriodValue[0] = 10;
PulsePeriodValue[1] = 50;
PulsePeriodUnit[0] = DIO_PWM_PULSE_PERIOD_UNIT_US;
PulsePeriodUnit[1] = DIO_PWM_PULSE_PERIOD_UNIT_US;
Ret = dio.SetPwmPulsePeriod( Id , ref 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
PulsePeriodValue[0] = 10
PulsePeriodValue[1] = 50
PulsePeriodUnit[0] = cdio.DIO_PWM_PULSE_PERIOD_UNIT_US
PulsePeriodUnit[1] = cdio.DIO_PWM_PULSE_PERIOD_UNIT_US
Ret.value = cdio.DioSetPwmPulsePeriod( Id , ChNo , 2 , PulsePeriodValue , PulsePeriodUnit )
 

See Also

DioGetPwmPulsePeriod