I am using NodeMCU and I program it using Arduino IDE, I need to change the PWM frequency of a port, in Arduino I used to change the frequency using timers registers like that:

TCCR1B = (TCCR1B & 0xF8) | 1 ;

How can I change the frequency of a digital pin using some function like that:

analogWriteFrequency(pin, 31250);

So that the code will looks like that:

#ifdef __AVR__
TCCR1B = (TCCR1B & 0xF8) | 1 ; //generates the MCKL signal
analogWriteFrequency(pin, 31250);
analogWrite(pin, 128) ;


1 Answer 1


PWM frequency is 1kHz by default. Call analogWriteFreq(new_frequency) to change the frequency.


  • Thanks. but, can I adjust it to a specific pin ? Jul 10, 2016 at 12:30
  • Probably not. They probably all use the same single PWM generator. Jul 10, 2016 at 12:33
  • Source link is 404. Oct 3, 2019 at 13:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.