Цитата(rezident @ Dec 22 2010, 02:26)

Типовая ошибка. Определитесь работаете ли вы с АЦП по прерываниям, либо используете опрос флагов. Если второе, то не следует разрешать прерывания. Если первое, то будьте любезны корректно описать обработчик прерываний. Вот нафига зачем вы разрешили прерывания от АЦП по переполнению (бит ADC12OVIE) и по таймауту времени преобразования (бит ADC12TOVIE)? Вы же не используете режимы автоматического (конвейерного) преобразования, запуская ЦАП "вручную". Следовательно работа АЦП вам полностью подконтрольна и вы всегда успеете считать результат оцифровки до того, как будет запущен цикл нового преобразования, а указанные события прерываний возникать не должны. Кроме того, прерывания-то разрешены, а обработчика соответствующих состояний нету. Почитайте внимательно раздел 17.2.10 ADC12 Interrupts в User's Manual. У ADC12 есть 18 источников прерываний, которые идентифицируются в регистре ADC12IV, реализующем приоритеты и дополнительные векторы прерываний вдобавок к расшаренному вектору ADC12_VECTOR. Кстати, у вас даже символьное имя вектора неправильно указано.
Cпасиба за ответ!
Как-то всё обычно с последовательностями по прерываниям работал, а с одиночным вот помесь получилась)) Прерывания АЦП все запретил, ADC12OVIE и ADC12TOVIE убрал - остатки были от разного рода попыток.
Считываю pyfxtybz теперь в main() без всяких прерываний:
..........
delay_ms(300);
ADC12CTL0 |= ADC12SC;
while(ADC12CTL1&ADC12BUSY)
{}
U[Counter++] = ADC12MEM0;
....................
Всё успевало и успевает преобразовываться, только все равно значения в ~2 раза больше, если нет останова на ADC12CTL0 |= ADC12SC;
Сбрасывать вроде ничего дополнительно не надо.. Я что-то еще упустил?
(#define ADC_VECTOR ADC12_VECTOR - это в msp430x16x.h у меня стоит. )