analogWriteInit()は出力タイマの分解能と分周比を設定します。
void analogWriteInit(uint8_t ch, uint16_t top = 65535, uint16_t prescaler = 1)
| コマンド | 引数 | 戻り値 | 動作 |
|---|---|---|---|
analogWriteInit(ch, top, prescaler) | uint8_t chuint16_t top = 65535uint16_t prescaler = 1 | void | 出力タイマの分解能と分周比を設定します。 |
void setup() { analogWriteInit(0, 65535, 1); // 出力タイマの分解能と分周比を設定します。 analogWrite(0, 32767); // 約50% analogWrite(1, 65535); // 100% } void loop() { }
analogWrite(0~15, value)はYアナログ出力用、analogWrite(20~31, value)はK/K2高速パルス出力用です。D130~D135、K2がD130~D141で、Yモジュール数に関係なく固定です。0~65535、高速パルス出力にはArduino互換の0~255値を使用します。analogWriteInit()、analogWriteFreq()、analogWriteMax()はYアナログ出力チャネル用です。高速パルス20~31には使用しません。analogWrite(130~141, value)は使用しません。analogWriteFreq()を呼び出すとTOPが自動で変わるため、その後のanalogWrite()の最大duty値も変わります。analogWriteFreq()の戻り値またはanalogWriteMax()で現在のduty最大値を確認します。