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 최대값을 확인한다.