Hola, que tal?
1) LED y BOMBA, lo tomamos como registros de un byte?.
2) activarBomba() y desactivarBomba() tiene que estar implementadas dentro del int main()? o lo tomamos como funciones auxiliares y la implementamos como tal?.
Hola, que tal?
1) LED y BOMBA, lo tomamos como registros de un byte?.
2) activarBomba() y desactivarBomba() tiene que estar implementadas dentro del int main()? o lo tomamos como funciones auxiliares y la implementamos como tal?.
void activarBomba() { OUT(BOMBA, IN(BOMBA) | 0x4); // prende el bit 2 de puerto BOMBA y deja los demás como estaban while(IN(SENSOR) & 1 == 0) { } // espero a que el sensor detecte que la bomba está prendida OUT(BOMBA, IN(BOMBA) | 0x14); }Puede haber alguna variación sobre este código dependiendo de cómo entiendas la frase " Cuando la bomba se activa se debe activar un LED conectado al bit 4 del puerto BOMBA, en otro caso se debe desactivar el LED.". O sea, podrías complicar un poco el código leyendo previamente el valor de SENSOR para ver si la bomba ya estaba activada. Y también podrías entender que si la bomba ya está activa entonces no es necesario mandarla a activar nuevamente.
void activarBomba()Saludos,
{
if(IN(SENSOR) & 1 == 0)
{ // la bomba estaba desactivada
OUT(BOMBA, (IN(BOMBA) | 0x4) &~0x10); // prende el bit 2 y apaga bit 4
while(IN(SENSOR) & 1 == 0) { } // espero a que el sensor detecte que la bomba está prendida
}
OUT(BOMBA, IN(BOMBA) | 0x14);
}