El proyecto simula un surtidor de una gasolinera. El problema es cuando seleccionas el importe en Euros el surtidor siempre hecha algo de mas y no consigo ver que es. Esta es la zona afectada dentro de una funcion llamada ACCIONGATILLO():
while(topM>mteria){//wil1 //ERROR SIEMPRE HECHA ALGO DE MAS ////////////
if (Input(PIN_c1) ){ ////////////
lcd_putc("\f"); lcd_gotoxy(1,1); ////////////
EURO(see,topE,topM); lcd_gotoxy(1,4);
mony=mteria*eur;
printf(lcd_putc,"%f EUROS %f LITROS",mony,mteria);
mteria=mteria+surt; delay_ms(100);
if (topM<=(mteria+2)){ surt=0.1; }//Cuando kedan solo 2 litros se decelera el surtido
}
}//wil1
lcd_putc("\f"); lcd_gotoxy(1,1);
EURO(see,topE,topM); lcd_gotoxy(1,4);
mony=mteria*eur;
printf(lcd_putc,"TOTAL %f EUROS SON %f LITROS",mony,mteria); ////////////
while(Input(PIN_c5) || Input(PIN_c6) || Input(PIN_c7)){ ////////////
cerobombeo(); delay_ms(30); ////////////
}
Tambien falla algo en la simulacion de Proteus que no entiendo los 3 circuitos de cada surtidor son equivalentes. Aun asi solo actua el de "gasolina 95" Las señales enviadas por codigo parecen estar bien