#define PWM_CT1_A 9 //OC1A #define PWM_CT1_B 10 //OC1B #define maxpwm 250 #define minpause 256 uint16_t pwm = 32; uint16_t pause = 256; void ct1_init() { pinMode(PWM_CT1_B,OUTPUT); // 64 khz TCCR1A = (1 << COM1B1)|(1 << WGM11); //fast PWM TCCR1B = (1 << CS10)|(1 << WGM13)|(1 << WGM12); // prescaler 0 OCR1B = pwm; // pwm value ICR1 = pause; // max value } void setup() { pinMode(LED_BUILTIN, OUTPUT); Serial.begin(115200); ct1_init(); } char in_ch; void loop() { if (Serial.available()) { in_ch = Serial.read(); if (in_ch == '1') pwm = constrain(pwm+8,0,maxpwm); if (in_ch == '2') pwm = constrain(pwm-8,0,maxpwm); if (in_ch == '3') pause = constrain(pause+8,minpause,0xFFFF); if (in_ch == '4') pause = constrain(pause-8,minpause,0xFFFF); OCR1B = pwm; ICR1 = pause; Serial.print(pwm); Serial.print(" "); Serial.println(pause); } delay(100); }