I do not get why my wait for "tACQ" is faulty (I do not get why you are telling I am decreasing a memory address, I thought that using the command "#define tACQ 05h" was to a synthaxic substitution, i.e. each "tACQ" is replaced by the value "05h") ?
Yes it is, so where you have:
decfsz tACQ, 1 ;is "tACQ" equal to 0 ?
after the text substitution, you have
decfsz 5, 1 ;is "tACQ" equal to 0 ?
The parameter to the "decfsz" instruction is the address of the register to decrement, so that instruction is decrementing the register at address 5, which is one of the "core" registers, FSR0H.
So, you are decrementing FSR0H. As you don't use that register anywhere else, after the first interrupt (which will have a random delay) all subsequent interrupts will loop 256 times when it gets there.
Also, I am not sure I understand correctly: each xxx time, I launch a conversion inside an interrupt (set the GO/DONE bit), then resume the "main_loop", in which I check for the value of the ADIF bit. If it is set, I check if the conversion result is smaller than a defined threshold. Is this right ?
You don't even need to use the hardware interrupt. Your main_loop could be polling the TMR1IF flag, and incrementing (or decrementing) a variable each time, then after X roll overs you could initiate an ADC conversion.
As you're not inside an interrupt service, you could just continue the same technique of waiting for the GO/DONE bit to clear before reading the result and doing the comparison. The ADIF flag is only useful if you need to be doing other things in your main loop, and need the comparison to be done inside an interrupt service triggered the moment the conversion is complete.
Also, when you ARE using hardware interrupts, don't set the GIE bit until all your other initialisation code has been run. You do NOT want an interrupt to trigger before you finish setting up your PIC!