Hola a todos, resulta que estoy desarrollando un proyecto en ccs en el cual recorro un menú con dos pulsadores, pulsadormas que se supone que va de 0 a 5 y cuando llega a 5 se pone en 0 para repetir el proceso y pulsadormenos que va desde el 5 hasta el 0 y cuando llega a 0 pasa al 5.
Pues el pulsadormas no tengo problemas me funciona bien, el algoritmo es este:
int limitemas=5;
if(input(selectmas)==0){
delay_ms(20); //Un retraso para evitar rebotes del pulsador
swicht++; //Se incrementa la variable swicht
if(swicht > (limitemas-1)){ //Si la variable swicht es mayor que límitemas -1
swicht = 0; // se pone la variable swicht a 0
}
}
y el pulsadormenos es:
int limitemenos=0;
if(input(selectmenos)==0){
delay_ms(20);
swicht--;
if(swicht < (limitemenos )){
swicht=5;
}
}
pero en el pulsadormenos es donde me viene los problemas, no consigo que me funcione bien, he probado muchas maneras sin éxito.
la variable int va de 0 a 255 y creo pensar que cuando la decremento y llega al 0, el siguiente decremento será 255 y por eso es por lo que no me funciona correctamente, a parte de eso, cuando la cuenta de pulsadormas va por 4 e intento pulsar pulsadormenos para bajar de 4 a 3 y así sucesivamente me da saltos raros no baja secuencialmente si no que pone el número que de la gana a veces.
¿Que estoy haciendo mal?.
¿se puede hacer esto de otra manera más eficiente y menos complicada?
saludos