How To: PWM
Pulzně šířková modulace (PWM) je metoda, jak z digitálního výstupu mikrokontroléru vytvořit signál podobný analogovému. Dosahuje toho rychlým přepínáním pinu s různým poměrem logické HIGH a LOW úrovně. Tento poměr se nazývá duty cycle (střída).
V pinoutu modulu Core si ověřte, které piny podporují PWM.
Jako PWM piny lze použít 9 pinů:
TWR_PWM_P0
TWR_PWM_P1
TWR_PWM_P2
TWR_PWM_P3
TWR_PWM_P6
TWR_PWM_P7
TWR_PWM_P8
TWR_PWM_P12
TWR_PWM_P14
Odkazy
- PWM SDK Module
- Ukázka v repozitáři na GitHubu
Duty cycle
Duty cycle určuje, jak dlouho má být pin ve stavu HIGH; změnou tohoto čísla dosáhnete různých výstupů podobných analogovým.
Hodnoty jsou v rozsahu 0-255, kde 0 znamená vždy LOW a 255 znamená vždy HIGH
info
Toto je jen jednoduchý příklad, který zapne PWM signál na výstupech P6, P7 a P8. Každý výstup má jiný duty cycle: 180, 210 a 255.
Ukázka kódu pro spuštění PWM na pinech
void application_init()
{
twr_pwm_init(TWR_PWM_P6);
twr_pwm_set(TWR_PWM_P6, 180);
twr_pwm_enable(TWR_PWM_P6);
twr_pwm_init(TWR_PWM_P7);
twr_pwm_set(TWR_PWM_P7, 210);
twr_pwm_enable(TWR_PWM_P7);
twr_pwm_init(TWR_PWM_P8);
twr_pwm_set(TWR_PWM_P8, 255);
twr_pwm_enable(TWR_PWM_P8);
}