Измерения проходят успешно, но почему-то при первом запуске ацп происходит зацикливание и дальше постоянно происходит прерывание

Инициализация ацп:
Код
//---------------------------------------------------------------------------
void InitADC()
{
ADC12CTL0 = ADC12ON | SHT0_4 | MSC; //источник опоры внешний
ADC12CTL1 = CSTARTADD_0 | SHP | CONSEQ_1;
ADC12MCTL0 = SREF_1 | INCH_0;
ADC12MCTL1 = SREF_1 | INCH_1;
ADC12MCTL2 = SREF_1 | INCH_2;
ADC12MCTL3 = SREF_1 | INCH_3;
ADC12MCTL4 = SREF_1 | INCH_4;
ADC12MCTL5 = SREF_1 | INCH_5;
ADC12MCTL6 = SREF_1 | INCH_6;
ADC12MCTL7 = SREF_1 | INCH_7 | EOS;
ADC12IE = 0x80; // прерывание от последнего канала
ADC12CTL0 |= ENC;
}
//---------------------------------------------------------------------------
void ADC_Start()
{
ADC12CTL0 |= ADC12SC;
}
//---------------------------------------------------------------------------
// Прерывание:
#pragma vector=ADC12_VECTOR
OS_INTERRUPT void ADC12ISR (void)
{
OS::TISRW ISRW;
ef_adc.SignalISR();
//тут стоит брейкпоинт, и почему-то после первого запуска ацп
//постоянно попадаю сюда :(
}
//---------------------------------------------------------------------------
//фрагмент кода, откуда должно запускаться ацп:
...
ADC_Start();
ef_adc.Wait(); //ждать окончания преобразования
int SenseA = ADC12MEM0;
int SenseB = ADC12MEM1;
....
void InitADC()
{
ADC12CTL0 = ADC12ON | SHT0_4 | MSC; //источник опоры внешний
ADC12CTL1 = CSTARTADD_0 | SHP | CONSEQ_1;
ADC12MCTL0 = SREF_1 | INCH_0;
ADC12MCTL1 = SREF_1 | INCH_1;
ADC12MCTL2 = SREF_1 | INCH_2;
ADC12MCTL3 = SREF_1 | INCH_3;
ADC12MCTL4 = SREF_1 | INCH_4;
ADC12MCTL5 = SREF_1 | INCH_5;
ADC12MCTL6 = SREF_1 | INCH_6;
ADC12MCTL7 = SREF_1 | INCH_7 | EOS;
ADC12IE = 0x80; // прерывание от последнего канала
ADC12CTL0 |= ENC;
}
//---------------------------------------------------------------------------
void ADC_Start()
{
ADC12CTL0 |= ADC12SC;
}
//---------------------------------------------------------------------------
// Прерывание:
#pragma vector=ADC12_VECTOR
OS_INTERRUPT void ADC12ISR (void)
{
OS::TISRW ISRW;
ef_adc.SignalISR();
//тут стоит брейкпоинт, и почему-то после первого запуска ацп
//постоянно попадаю сюда :(
}
//---------------------------------------------------------------------------
//фрагмент кода, откуда должно запускаться ацп:
...
ADC_Start();
ef_adc.Wait(); //ждать окончания преобразования
int SenseA = ADC12MEM0;
int SenseB = ADC12MEM1;
....
Вопрос то состоит в том, почему ацп не останавливается после первого измерения с восьми каналов?

Флаг ADC12SC при этом сбрасывается - проверял.