Practico 8, ejercicio 3

Re: Practico 8, ejercicio 3

de Ismael Schellemberg Gandolfo -
Número de respuestas: 0

Corríjanme si me equivoco, pero creo que el ejercicio dice que se llama a una interrupción cada vez que se presiona una tecla.
En ese caso se tendría que guardar una flag "apretoEsc" cuando se aprieta ESC y la próxima vez que se llame a la interrupción chequear si ese flag está prendido y si se apretó 1,2,3.

Mi solución es así:



bool ejecutandoRutina;

bool apretoEsc;

void interrupcion_tecla() {

    char t = in(TECLA);

    if (ejecutandoRutina) {

        if (t == TECLA_ESC) {

ejecutandoRutina = false;

jmp(padr());

}

    } else {

if (apretoEsc) {

if (t == TECLA_1)

gotoRutina(RUTINA1);

else if (t == TECLA_2)

gotoRutina(RUTINA2);

else if (t == TECLA_3)

gotoRutina(RUTINA3);

}

apretoEsc = (t == TECLA_ESC);

}

}


void gotoRutina(string nombreRutina) {

ejecutandoRutina = true;

jmp(radr(nombreRutina));

}