Hola!
No es para nada recomendable que uses el mísmo nombre para una variable global y una local.
hms y FE son dos variables que declaraste tanto como globalmente, como localmente en int_dec().
Hay que destacar que cuando hacés:
temp_hms=inc_dec(hms,HE,pulsa02,pulsa03,temp_hms);
como tu declaración de la función es:
int inc_dec(int hms, int He, int pulsa02, int pulsa03,int temp_hms)
en realidad, se hace una copia del hms y HE global. NO SE USAN LAS VARIABLES GLOBALES SINO UNA COPIA DE ELLAS.
Si en la función:
int inc_dec(int hms, int He, int pulsa02, int pulsa03,int temp_hms)
el argumento hms y He siempre van a ser las variables globales hms y HE, no te conviene hacer lo que estás haciendo.
Sencillamente, quitá de la función ambos parámetros, quedando:
int inc_dec(int pulsa02, int pulsa03,int temp_hms)
De esta manera, cada vez que te refieras a hms o a HE, el compilador sabrá que te estás refiriendo a las que declaraste globalmente.
Entonces, como recomendación debo decir que:
Nunca utilices el mísmo nombre para una variable que exíste globalmente y un argumento de una función, porque dependiendo del compilador, a veces asumirá que te estás refiriendo a la variable local y otras a la global.
Saludos.