Короче, дело оказалось не в АЦП. Хоть вначале и кривовато, но и сразу, и потом считывались одинаково правильные значения. Причем верные и те, что пошагово, и те, что в ~2 раза больше непошаговые. Ключевой строкой оказалась delay(...)! P2OUT |= ON3; delay_ms(300); ADC12CTL0 |= ADC12SC; while(ADC12CTL1&ADC12BUSY) {} U[Counter++] = ADC12MEM0; Смысл в том, что значения АЦП снимаются для измерения токопотребления схемы, в 4-х состояниях. Задержка нужна, для устаканивания очередного состояния. И в том, что при останове на ADC12CTL0 |= ADC12SC проц. находится в простое, а при обычном проходе напряжение не успевает упасть после режима с вычислительной нагрузкой на процессор: delay() или цикл и т.п. Явно виден скачок при включении и выключении задержки. В зависимости от тактовой частоты, разница получается в единицы миллиампер. По напряжению на АЦП у меня при тактовой 8 МГц получались как раз значения ~ в 2 раза отличающиеся. По току если: ~7 мА с нагруженным процом и ~3 мА в простое. К примеру, при 4 МГц : вместо 7 мА 5 мА. И т.д. Вот такие вот дела))
|