Maybe something like:
Replace this statement “read_P1 = digitalRead(P1);” in function void TX_MODE() with code which :
A) detects the button transitioning from “not pressed” to “pressed”.
B) sets a timer on the above status change. (Record current value of millis() )
C) also sets read_P1 to 1 on the status change.
D) checks if read_P1 has the value 1 and checks if the timer has expired (3.6 seconds). If so, read_P1 is set back to 0.