Ладно с другой стороны подойду. GIE не может (не имеет права) оказывать влияние на флаги прерываний хотя бы с той точки зрения, что при переходе по вектору прерывания GIE автоматически сбрасывается и восстанавливает свое состояние только http://caxapa.ru/335316.html
после RETI. То бишь, если бы ваше утверждение было верным, то на время работы данной конкретной функции обработки прерывания все события от источников маскируемых прерываний попросту бы игнорировались и флагами запроса прерываний не фиксировались. Но это же абсурд! GIE не влияет на флаги источников прерываний и на значение расшаренных векторов прерываний. GIE всего лишь разрешает/запрещает переходы по векторам маскируемых прерываний. GIE (General Interrupt Enable) — общее разрешение прерываний. См. блок-схему системы прерываний в руководстве Figure 1-2. Interrupt Priority.
А тот артефакт, что вы описываете возможно вызван
вашей программной ошибкой. В вашем фрагменте написано
TA0CCTL2 = CCIFG;
вместо
TA0CCTL2 |= CCIFG;
Вы устанавливаете флаг и одновременно сбрасываете CCIE. Поэтому у вас TA0IV всегда как 0 читается.