Дык в примерах есть обработчик прерывания в котором считывается результат преобразования АЦП. Или вы не хотите использовать прерывания? Ваш код не работает правильно потому, что у вас в цикле нет проверки готовности результата. Каждое преобразование АЦП занимает некоторое время, поэтому нельзя считывать результат из регистра ADC16MEM0 в любой произвольный момент времени. Нужно дожидаться готовности каждого последующего результата перед его считыванием. Готовность можно определить, анализируя бит SD16IFG в регистре SD16CCTL0. Использование прерывания как раз облегчало бы эту задачу, т.к. (разрешенное) прерывание вызывается сразу же после готовности результата преобразования, без необходимости программного анализа флага готовности.
|