ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 ноября
335535 Топик полностью
rezident (16.06.2012 14:13, просмотров: 239) ответил Vit на В тесте переменная читает TA0IV, её значение не меняется, но далее она модифицируется и это видно. В окне регистров выбран не таймер
Ладно с другой стороны подойду. 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 читается.
image