I am sorry for my late answer - I tried to change the code and compile it, but due to other errors couldn't do that. Anyway, I think that my problem was also related to code writing rather then enum mistakes: I was able today to compile the code.
My lcd_send_string(* char) function was declared in a functions.h file as following:
char *enum2str(enum IOchannel);
void lcd_send_string(char *s);
while LCD was defined in another definitions.h file:
#define LCD LCD4
I had to comment #ifdef and #endif, and then everything compiled succesfully, including that function with enums: lcd_send_string(enum2str(haltIn)).