Полная версия этой страницы:
считывание данных с АЦП
Zelepuk
Sep 6 2011, 11:55
Возникла проблема при считывании данных с АЦП в прерывании. Птыаюсь понять в чём дело.
Подумал что возможно ошибка в том что считываю из регистров АЦП данные несколько раз в прерывании
иными словами правомерна ли такая конструкция в прерывании АЦП
x = SD16MEM2;
y = SD16MEM2;
при этом x и y будут содержать одинаковые значения?
Пока не случится так, что очередное преобразование закончится в аккурат между двумя чтениями.
Лучше уж так написать:
y = x = SD16MEM2;
или даже так: x = SD16MEM2; y = x;
Больше проблем бывает от не прочитанного регистра ADC12IV.
Zelepuk
Sep 7 2011, 14:15
Сделал как вы посоветовали и всё заработало нормально.
Я читал в даташите что при считывании регистра памяти автоматически сбрасывается бит в регистре прерываний.
Вот цитата:
SD16_A interrupt flag. SD16IFG is set when new conversion results are
available. SD16IFG is automatically reset when the corresponding
SD16MEMx register is read, or may be cleared with software.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.