Товарищи!
Поскольку в этой теме отметились многие понимающие в АЦП LPC, позволю себе задать вопрос на уточнение. К сожалению, из ДШ на LPC1313 вытянуть ответ не получается - лапидарность явно в чертах составителей оного =(
Вопрос, собственно, в следующем. Если я правильно понял, установка бита BURST запускает непрерывное преобразование по всем заданным каналам. Как мне поступить, если я хочу произвести оцифровку всех каналов единожды? Сейчас делаю так: настроил прерывание от 7-го канала, устанавливаю BURST, затем при входе в прерывание обнуляю BURST, чтобы остановить преобразование. Только вот в ДШ написано: "Repeated conversions can be terminated by clearing this bit, but the conversion in progress when this bit is cleared will be completed." Фактически это означает, что при такой схеме поведения я получу запуск по 0-му каналу ещё раз (поверх уже выполненного), а в это время стану обрабатывать ранее полученные значения в прерывании, после чего преобразование по 0-му каналу завершится уже без моего участия. И там будет ещё один результат. А вскоре, когда мне понадобится сделать ещё один прогон, я внось оцифрую все каналы... и в регистре результата 0-го канала я найду установленным бит OVERRUN. Он как-то скажется на дальнейшем поведении модуля? Можно ли его игнорировать? И для чего он тогда нужен, если его установка возможна в столь двусмысленной ситуации?
Генерация по прерыванию от 6-го канала мне не видится выходом из ситуации - моя обработка, вероятно, случится ещё до того, как завершится оцифровка 7-го канала.
|