реклама на сайте
подробности

 
 
> считывание данных с АЦП, в прерывании
Zelepuk
сообщение Sep 6 2011, 11:55
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Возникла проблема при считывании данных с АЦП в прерывании. Птыаюсь понять в чём дело.
Подумал что возможно ошибка в том что считываю из регистров АЦП данные несколько раз в прерывании

иными словами правомерна ли такая конструкция в прерывании АЦП

x = SD16MEM2;
y = SD16MEM2;

при этом x и y будут содержать одинаковые значения?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
SSerge
сообщение Sep 7 2011, 09:08
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Пока не случится так, что очередное преобразование закончится в аккурат между двумя чтениями.
Лучше уж так написать:
y = x = SD16MEM2;
или даже так: x = SD16MEM2; y = x;

Больше проблем бывает от не прочитанного регистра ADC12IV.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
Zelepuk
сообщение Sep 7 2011, 14:15
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Сделал как вы посоветовали и всё заработало нормально.
Я читал в даташите что при считывании регистра памяти автоматически сбрасывается бит в регистре прерываний.
Вот цитата:

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.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 11:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01288 секунд с 7
ELECTRONIX ©2004-2016