Sets the PWM pulse duty cycle for the specified channel.
Ret = DioSetPwmPulseDuty( Id , ChNo , ChNum , PulseDuty )
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.
PulseDuty
[ 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 duty cycle
settings.
PulseDuty sets the ON time.
When the value is 0, the duty cycle is 0%. When the value is 65535, the
duty cycle is 100%.
Setting range: 0 to 65535
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_PULSE_DUTY |
20902 |
The PWM pulse duty ratio is out of 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)
0
Sets the PWM pulse duty cycle for the specified channel.
The
ON time is determined by the configured PWM pulse period and the value
set for PulseDuty.
For details on the PWM pulse period, please refer to the DioSetPwmPulsePeriod
function.
Examples of setting the PulseDuty value based on the duty ratio are shown below.
PWM pulse period |
Desired Duty ratio |
PulseDuty |
The
ON time |
(Reference) DioSetPwmPulsePeriod |
|
PulsePeriodValue |
PulsePeriodUnit |
||||
5.0μsec |
0% |
0 |
0.0μsec |
5 |
DIO_PWM_PULSE_PERIOD_UNIT_US |
25% |
16384 |
1.2μsec |
|||
50% |
32768 |
2.5μsec |
|||
75% |
49152 |
3.7μsec |
|||
100% |
65535 |
5.0μsec |
|||
250msec |
0% |
0 |
0.0μsec |
250 |
DIO_PWM_PULSE_PERIOD_UNIT_MS |
25% |
16384 |
62,500.9μsec |
|||
50% |
32768 |
125,001.9μsec |
|||
75% |
49152 |
187,502.8μsec |
|||
100% |
65535 |
250,000.0μsec |
|||
1sec |
0% |
0 |
0.0μsec |
1 |
DIO_PWM_PULSE_PERIOD_UNIT_S |
25% |
16384 |
250,003.8μsec |
|||
50% |
32768 |
500,007.6μsec |
|||
75% |
49152 |
750,011.4μsec |
|||
100% |
65535 |
1,000,000.0μsec |
|||
To improve the duty cycle setting resolution, the setting range of PulseDuty
has been changed from a percentage value (0–100) to a binary value (0–65535).
(Released in July 2026)
Please note that updating to the following versions may affect your applications.
- API-DIO(WDM) Ver.11.10 or later
- CPSN-MCB271 (Firmware Ver.1.81 or later)
- CC-USB271 (Firmware Ver.1.32 or later)
Set the duty cycle of channel 0 to 25%(16384) and the duty cycle of channel 1 to 50%(32768).
VB.NET |
Dim Ret As Integer |
C, C++ |
long Ret; |
C# |
int Ret; |
Python |
Ret = ctypes.c_long() |
PWM function DioGetPwmPulseDuty DioSetPwmPulsePeriod