Buenas, soy nuevo en el foro, y pues tengo un problemita. lo que pasa es que genero mi señal cuadrada con fecuencia de 50 HZ y el ancho de pulso varia entyre 1 ms y 2 ms pero el servo siempre se mueve al tope y se queda ahi. si alguien me pudiera ayudar se lo agredeceria.
#include <18f4550.h>
#fuses HS,NOMCLR,PUT,NOWDT,NOPROTECT,BROWNOUT,NOLVP,NOCPD,NODEBUG,NOWRT
#use delay(clock=4000000)
void main(void){
while(true){
if(input(PIN_A0)){
output_high(PIN_B0);
delay_us(1500); //Teimpo en alto
output_low(PIN_B0);
delay_us(18500); //tiempo en bajo
//1500+18500 = 20 ms = 50 hz;
}
if(input(PIN_A1)){
output_high(PIN_B0);
delay_us(1000);
output_low(PIN_B0);
delay_us(19000);
}
if(input(PIN_A2)){
output_high(PIN_B0);
delay_us(2000);
output_low(PIN_B0);
delay_us(18000);
}
}
}