Estoy tratando de usar un microcontrolador PIC18F4520 para impulsar 8 servomotores. Para esto necesito 8 señales PWM, pero la unidad PIC solo tiene dos PWM incorporadas. Entonces, decidí usar algunos pines de E / S normales como PWM y busqué cómo hacerlo. Encontré alguna solución basada en hardware como el uso de IC adicionales o una solución basada en software como el uso de PWM basado en interrupciones. Pero, ¿por qué no puedo usar este segmento de código?
while(1)
{
PORTA.RA0=1;
delay_ms(10);
PORTA.RA0=0;
delay_ms(10);
}
El pin es alto durante 10 ms y bajo durante 10 m. Por lo tanto, el período de ciclo es de 20 ms. ¿No debería esto crear una señal de 50Hz con un ciclo de trabajo del 50%? ¿O me estoy perdiendo algo?