https://github.com/gprehder/pwm.git
O PWM (Pulse Width Modulation, ou Modulação por Largura de Pulso) é utilizado para controlar a potência média fornecida a dispositivos eletrônicos de forma eficiente. Ele funciona gerando um sinal digital que alterna entre ligado (HIGH) e desligado (LOW) em alta frequência, variando a largura do tempo ligado (duty cycle).
É uma técnica poderosa porque permite controlar dispositivos analógicos com saídas digitais simples, economizando energia e evitando aquecimento excessivo.
Na figura a seguir temos uma imagem que ilustra bem o funcionamento do PWM.

Fonte da Imagem: https://protostack.com.au/2011/06/atmega168a-pulse-width-modulation-pwm/
A utilização do PWM para modular a largura do pulso de saída de um pino necessita da utilização de um timer (veja mais sobre timers em Timers no KL25Z. Para o KL25Z, o módulo TPM é utilizando. No entanto, o Zephyr não tem suporte para o PWM e vamos utilizar aqui registradores para configurar o TPM e PWM.