Os timers do microcontrolador KL25Z da NXP (usado na placa FRDM-KL25Z) são periféricos fundamentais para controle de tempo, geração de sinais PWM, medições e contagens. Ele possui quatro tipos principais de temporizadores:
🕒 1. TPM (Timer/PWM Module)
O KL25Z possui três módulos TPM: TPM0, TPM1 e TPM2. A biblioteca pwm.h/pwm.c pode ser usada para implementar o TPM utilizando os registradores. Mais detelhes em PWM - Variar a Intensidade do LED (Zephyr 4.2)
✅ Características:
- Resolução de 16 bits.
- Suporte à geração de PWM (Pulse Width Modulation).
- Pode funcionar como temporizador de uso geral, contador de eventos ou medidor de pulsos.
- Pode gerar interrupções em overflow ou por canal.
- Permite o modo de captura de entrada (input capture) ou comparação de saída (output compare).
- Cada TPM possui canais independentes (ex: TPM0 tem até 6 canais, TPM1 e TPM2 têm 2 canais cada).
⛓️ Fontes de clock:
- MCGFLLCLK, MCGIRCLK ou OSCERCLK (selecionáveis via SIM_SOPT2).
- O clock do módulo pode ser dividido por um prescaler interno.
📌 Aplicações:
- Geração de PWM para controle de motores ou LEDs.
- Medição de tempo entre eventos (input capture).
- Temporizações periódicas com interrupções.
- Geração de sinais com frequência/duty cycle ajustáveis.