指定したチャネルのPWMパルスのデューティー比の設定を行います。
Ret = DioSetPwmPulseDuty( Id , ChNo , ChNum , PulseDuty )
Id
[ C, C++: short ] [ Python: ctypes.c_short ]
DioInitで取得したデバイスIDを指定します。
ChNo
[ C, C++: short * ] [ Python: ctypes.POINTER(ctypes.c_short) ]
設定を行うチャネル番号を格納した配列の先頭アドレスを指定します。
ChNum
[ C, C++: short ] [ Python: ctypes.c_short ]
ChNoで指定したチャネル数を指定します。
PulseDuty
[ C, C++: unsigned short * ] [ Python: ctypes.POINTER(ctypes.c_ushort)
]
PWMパルスのデューティー比設定を格納した配列の先頭アドレスを指定します。
PulseDutyは、ON時間を設定します。
0の時がデューティー比0%、65535の時がデューティー比100%となります。
設定範囲:0 ~ 65535
Ret [ C, C++: long ] [ Python: ctypes.c_long ]
定義 |
値 [Dec] |
意味 |
DIO_ERR_SUCCESS |
0 |
正常終了 |
DIO_ERR_DLL_INVALID_ID |
10001 |
無効なIDが指定されました。 |
DIO_ERR_DLL_CALL_DRIVER |
10002 |
ドライバを呼び出せません(ioctlに失敗)。 |
DIO_ERR_DLL_BUFF_ADDRESS |
10100 |
データバッファアドレスが不正です。 |
DIO_ERR_SYS_NOT_SUPPORTED |
20001 |
このデバイスではこの関数は使用できません。 |
DIO_ERR_SYS_CH_NO |
20105 |
チャネル番号が指定可能範囲外です。 |
DIO_ERR_SYS_CH_NUM |
20106 |
チャネル数が指定可能範囲外です。 |
DIO_ERR_SYS_PWM_PULSE_DUTY |
20902 |
PWMパルスのデューティー比が指定可能範囲外です。 |
DIO_ERR_SYS_DEVICE_ERR_DRIVER_IC_ERR |
21200 |
ドライバICエラーが発生しました。 |
DIO_ERR_SYS_DEVICE_ERR_PCOM_FAILURE |
21201 |
PCOM電源異常が発生しました。 |
その他のエラー(参照:エラーコード詳細)
0
指定したチャネルのPWMパルスのデューティー比の設定を行います。
設定しているPWMパルス周期とPulseDutyで設定する値で、ON時間が決まります。
PWMパルス周期については、DioSetPwmPulsePeriod関数を参照してください。
以下に、デューティー比に対するPulseDuty値の設定例を示します。
PWMパルス周期 |
希望するデューティー比 |
PulseDuty |
ON時間 |
||
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 |
|||
チャネル0のデューティー比を25%(16384)、チャネル1のデューティー比を50%(32768)に設定します。
C, C++ |
long Ret; |
Python |
Ret = ctypes.c_long() |
DioGetPwmPulseDuty DioSetPwmPulsePeriod