DioStartPwm


Function

Starts the PWM pulse output for the specified channel.

Format

Ret = DioStartPwm( Id , ChNo , ChNum )

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 start the PWM pulse output.

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

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_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)

Remarks

Starts the PWM pulse output for the specified channel.

Even if the PWM pulse output is already running, you can start another channel that is not yet running.

If you try to start a channel that is already running, an error is returned and the device settings are not reflected.

If multiple channels are specified and DioStartPwm function is called, all specified channels' PWM pulse outputs are started in synchronization at the same timing.
However, if any of the channels to be started are already running, no settings are reflected on the device and an error is returned.

Channels that are called with DioStartPwm function at different timings do not synchronize their PWM pulse output timing.
For example, if the DioStartPwm function is called specifying one channel at a time, their timing will not align.

To synchronize the PWM pulse output timing across channels, first stop any operating PWM pulse output using the DioStopPwm function.
Then, specify all channels you wish to synchronize together and call the DioStartPwm function.

Example

Starts the PWM pulse output for channels 0 and 1.

VB.NET

Dim Ret As Integer
Dim ChNo(1) As Short

ChNo(0) = 0
ChNo(1) = 1
Ret = DioStartPwm( Id , ChNo , 2 )
 

C, C++

long Ret;
short ChNo[2]

ChNo[0] = 0;
ChNo[1] = 1;
Ret = DioStartPwm( Id , &ChNo[0] , 2 );
 

C#

int Ret;
short[] ChNo = new short[2];

ChNo[0] = 0;
ChNo[1] = 1;
Ret = dio.StartPwm( Id , out ChNo , 2 );
 

Python

Ret = ctypes.c_long()
ChNoType = ctypes.c_short * 2
ChNo = ChNoType()

ChNo[0] = 0
ChNo[1] = 1
Ret.value = cdio.DioStartPwm( Id , ChNo , 2 )
 

See Also

DioStopPwm