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

 
 
> Атомарные операции (таймер Т1), что будет если...?
Stas-
сообщение Oct 25 2011, 00:01
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 157
Регистрация: 20-01-09
Из: Новосибирск
Пользователь №: 43 645



Читаю даташит на мегу1284 и никак понять не могу что там с atomic operations и к чему они ведут.
Вот, например, меговский таймер Т1 тактируется от внешней частоты, которая всего в 4 раза меньше системного клока.
Вдруг захотелось считать регистр содержимого счетчика TCNT1 (сначала low байт, потом high байт).
То есть, клоков внешней частоты на Т1 пройдет заведомо больше, чем один, за то время, пока я буду этот регистр читать.

Что я считаю из регистра TCNT1 в итоге? Наверное, ничего хорошего, но что именно?
Будет ли таймер при таких условиях считать внешнюю частоту нормально или пропустит клоки, пока читать буду?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ILYAUL
сообщение Nov 1 2011, 20:07
Сообщение #2


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Что-то у меня логика не сходится.
Пусть прерывание произошло между чтением младшего и старшего байта. Пока читается младший, старший , тихой сапой , переползает в регистр временного хранения. Прерывание сохраняет , полюбасу , следующую команду и тихо уходит по своим делам . Если в эти дела , таймер не замешан , то старший байт сидит и ждёт своей участи , торча там где ему и положено, счётчик считает. Все заняты своим делом.
Вернулись , прочитали старший байт - он не изменился. Т.е , если в прерывании timer не задействован , то нафинг запрещать прерывания перед чтением.


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 1 2011, 20:22
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ILYAUL @ Nov 2 2011, 00:07) *
Т.е , если в прерывании timer не задействован , то нафинг запрещать прерывания перед чтением.

В этом случае действительно ничего запрещать не надо.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Stas-   Атомарные операции (таймер Т1)   Oct 25 2011, 00:01
- - dxp   Цитата(Stas- @ Oct 25 2011, 07:01) Ч...   Oct 25 2011, 01:55
- - ViKo   А Microchip для своих PIC-ов, у которых нет упомян...   Oct 25 2011, 08:49
- - Schulz_K   Атомарные операции в данном случае очень важны. Пр...   Oct 28 2011, 11:08
|- - ILYAUL   QUOTE (Schulz_K @ Oct 28 2011, 15:08) сох...   Oct 28 2011, 11:13
|- - Палыч   Цитата(Schulz_K @ Oct 28 2011, 15:08) ......   Oct 28 2011, 13:57
|- - ILYAUL   QUOTE (Палыч @ Oct 28 2011, 17:57) Кто-то...   Oct 28 2011, 15:24
|- - Artem_Petrik   Цитата(ILYAUL @ Oct 28 2011, 18:24) Код ...   Oct 28 2011, 15:39
|- - ILYAUL   QUOTE (Artem_Petrik @ Oct 28 2011, 19:39)...   Oct 28 2011, 16:02
|- - Artem_Petrik   Цитата(ILYAUL @ Oct 28 2011, 19:02) А Вы ...   Oct 28 2011, 18:14
|- - ILYAUL   QUOTE (Artem_Petrik @ Oct 28 2011, 22:14)...   Oct 28 2011, 18:44
- - aaarrr   Цитата(ILYAUL @ Oct 28 2011, 15:13) это л...   Oct 28 2011, 19:14
|- - ILYAUL   QUOTE (aaarrr @ Oct 28 2011, 23:14) Нет, ...   Oct 28 2011, 20:10
- - aaarrr   Запрещать/разрешать прерывания в произвольный моме...   Oct 28 2011, 20:24
|- - ILYAUL   QUOTE (aaarrr @ Oct 29 2011, 00:24) Запре...   Oct 28 2011, 20:38
|- - aaarrr   Цитата(ILYAUL @ Oct 29 2011, 00:38) CLI л...   Oct 28 2011, 20:53
|- - ILYAUL   QUOTE (aaarrr @ Oct 29 2011, 00:53) Предс...   Oct 28 2011, 21:05
- - ILYAUL   Цитата(aaarrr @ Nov 2 2011, 00:22) В этом...   Nov 1 2011, 20:34


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

 


RSS Текстовая версия Сейчас: 15th August 2025 - 18:23
Рейтинг@Mail.ru


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