void main()
{
short duty1 = 125; // initial value for Duty cycle
TRISD = 0xFF; // Set PORTD as input
TRISC = 0X00; // Set PORTC as output
PWM1_Init(2000);
PWM1_Start();
PWM1_Set_Duty(duty1);
while (1)
{
if (!PORTD.F0) // PORTD.F0=0 ? , si el resultado de PORTD.F0 es 0, el ! lo "niega" y queda en 1, por lo tanto entra al if, si es 1 el "negado" seria 0 y no entraria.
{
Delay_ms(10); // Antirebote
while(!PORTD.F0); // Espero que suelte antes de aumentar, es decir mientras sea 0 PORTD.F0 va a estar atrapado aca, es util para que cuando se presione no cuente muchas veces, sino que entre 1 ves
if(duty1<=250) // duty1 es menor o igual a 250? si es 250+5 = 255 maximo
{
duty1 += 5; // Sumo 5, lo mismo que hacer duty1 = duty1 + 5
}
else
{
duty1=255; // Si llego aca es por que es 251,252,253,254 o 255, cualquiera sea si sumo el tope es 255
}
PWM1_Set_Duty(duty1); // Seteo duty
}
else if(!PORTD.F1) // No se presiono PORTD.F0 y se presiono PORTD.F1 , es decir PORTD.F1=0
{
Delay_ms(10); // Antirebote
while(!PORTD.F1); // Espero que suelte el boton
if(duty1!=0) // Aca puedo preguntar por 0 ya que se resta de a 1, si restara de a 5 como el anterior
{ // deberia hacer algo parecido, para cuando es mayor o igual a 5 if(duty1>=5){duty1-=5;}else{duty1=0;}
duty1--; // Resto duty
PWM1_Set_Duty(duty1); // Seteo el duty
}
}
}
}