Mantener un pin HIGH solo una vez a una hora en concreto.

Hola,
Si cierras con punto y coma la sentencia if(), la estás anulando.

Si después del delay ya no coinciden los minutos, solo tienes que controlar la hora
Yo probaría algo así:

int hancomido = 0;

void comedero()
   {
       if  (Reloj.GetHour() ==  CFG.COMIDA_H && Reloj.GetMinute() == CFG.COMIDA_M  && hancomido == 0)
       {
             SetRele( 4, PIN_D_COMIDA, HIGH );
             delay(3000);
             hancomido = 1;
       }
       else 
            hancomido = 0;
   }