Repetir si se tiene apretado un boton

Hola, estoy trabajando con un PWM con dos pulsadores, uno aumenta, el otro disminuye, pero no se como hacer para que si se deja un pulsador oprimido disminuya o aumente constantemente, actualmente hay que pulsar, soltar y volver a pulsar.
El codigo el C:


void main() //PROGRAMA PRINCIPAL
{
set_tris_a(0xff); // RA0 y RA1 entradas
set_tris_b(0x0e); //RB0 salida
setup_ccp1(ccp_pwm); //CCP1 como PWM
setup_timer_2(t2_div_by_4,0xF0,1); // modo,PR2,posescaler
setup_adc_ports(no_analogs); // T=(PR2+1)*4*Tosc*Preescaler (periodo; con desde 500 5000Hz y >18KHz)
do // D=duty*Tosc*Preescaler (duty es el que va en set_pwm1_duty())
{
if(input(PIN_A0))
{
delay_ms(20);
while(input(PIN_A0))
delay_ms(20);
count++;
if(count==8)
count=7;
}
if(input(PIN_A1))
{
delay_ms(20);
while(input(PIN_A1))
delay_ms(20);
count--;
if(count==-1)
count=0;
}
x=count*3;
set_pwm1_duty(x); //cargo el valor 0-256 al PWM
output_bit(PIN_B4,input_state(PIN_B0)); // la salida RB4 es igual a la salida RB0
}while(true);
}

Muchas gracias por su ayuda.
 
Atrás
Arriba