Конечно может повиснуть. Где у вас сброс ТI0 (нужна в прерывании ветка else)? Сделайте принцип точно так, как вам сказал BB. Только его дополнительный бит сделайте volatile и присвойте изначально = 1. И - printf запоёт. Я б для острастки перед каждым printf делал Tiimage=1.