while(1){
if(!Arriba){
pulsa++;
lcd_gotoxy(3,2);
printf(lcd_putc,"%d",pulsa);
}
if(!Abajo) {
pulsa--;
lcd_gotoxy(3,2);
printf(lcd_putc,"%d\n",pulsa);
}
if(pulsa==9999){
pulsa=0;}
}
signed int pulsa=0;if(pulsa>9999){pulsa=0;}
La verdad es que no deberia el if esta bien definido. En el proteus ves que tiene un 1 en esa entrada ?
if(!input(Pulse_arriba)){
delay_ms(500 - rapidez);
pulsa++;
lcd_gotoxy(4,2);
printf(lcd_putc,"%d",pulsa);
if (rapidez < 450) { rapidez += 5 ;}
}
if(input(Pulse_arriba) && input(Pulse_abajo)){ rapidez =0; } if (rapidez < 450) { rapidez += 5 ;} if (rapidez < 50) { rapidez += 5 ;}
else if (rapidez < 200) { rapidez += 10 ;}
else if (rapidez < 450) { rapidez += 20 ;} // Esta condicion si o si, ya que es la que impone el limite maximo de reduccion del delay.Por cierto KILLERJC , lo que me comentaste de subir el conteo mediante 4 botones y elegir si quiero subir unidades/centenas/decenas y así ascender más rápido en mi caso no es posible, ya que tengo un menú con distintas opciones, y necesito un botón de ENTER y otro de ESCAPE para ir por el menú. Por tanto solo podría utilizar subir y bajar para variar el password, aún así muchas gracias.
Hola KILLERJC, perdona por la tardanza que he estado liado. He probado el código que me comentas para al presionar un botón (Pulse_arriba) ascendiera más rápido el conteo y no funciona. Lo presiono durante bastante rato y cuando suelto solo me cuenta uno, no entiendo porque
¿A que te refieres con ambos botones? ¿Qué ambos botones?
if(Arriba) {
delay_ms(250);
if(!Arriba){
pulsa++;
lcd_gotoxy(4,2);
printf(lcd_putc,"%d",pulsa);
}
else {
if(Arriba){
pulsa=pulsa+10;
lcd_gotoxy(4,2);
printf(lcd_putc,"%d",pulsa);
}
}
}
unsigned int pulsa=0; para CCS la variable si no me equivoco es int16