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

 
 
> Таймер и с чем его есть (а точнее как)...
d7d1cd
сообщение Sep 13 2012, 16:05
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



Привет всем. Возникла необходимость использовать в работе таймер в микроконтроллере MSP430F149, а точнее чтобы через определенный промежуток времени вызывалось прерывание. И у таймера А и у таймера В в таблице векторов прерываний есть по 2 вектора. Вопросы такие:

1. Зачем каждому таймеру по 2 вектора?

2. Возможно ли как-то использовать таймеры без использования прерывания от них?

3. Можно привести пример простейшей программы, инициализирующей, например, таймер А, в результате чего таймер через определенный промежуток времени генерирует прерывание?




P.S. Не судите строго. Я только начал изучать. User Guide читал, но мало что понял.

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
E.V.G.
сообщение Sep 24 2012, 05:18
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 31-01-10
Из: Арзамас
Пользователь №: 55 175



Лично я использовал в своих проектах запись в регистры модулей, которые не используются в работе. Пока не каких проблем нет. Использовал регистры TACCRx, TBCCRx, ADC12MEMx, PxOUT, DAC12xDAT. Главное при этом, чтобы регистры, контролирующие изменение состояния выше названных регистров были правильно настроены и не допускали произвольного изменения состояния используемых вами. Лучше всего использовать их под локальные переменные. При этом желательно каждый раз явно инициализировать регистры конфигурации, чтобы при сбоях не было проблем.

Например, для TACCRx нужно выбрать режим захвата (CAP=1, CM=00), запрет прерывания (CCIE=0).
Go to the top of the page
 
+Quote Post
rezident
сообщение Sep 24 2012, 11:44
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(E.V.G. @ Sep 24 2012, 10:18) *
Например, для TACCRx нужно выбрать режим захвата (CAP=1, CM=00), запрет прерывания (CCIE=0).

Это (выбирать режим capture, установкой бита CAP) делать категорически не рекомендуется! Причину я описал в сообщении выше. А если уж используете регистры под временные переменные в режиме capture, то биты CCIS должны иметь значение 0x2 или 0x3, но никак не 0x0 или 0x1.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- d7d1cd   Таймер и с чем его есть (а точнее как)...   Sep 13 2012, 16:05
- - controller_m30   Если что, есть в нете русский вариант user guide h...   Sep 13 2012, 16:44
- - d7d1cd   Как я понимаю, в нормальной программе таймер надо ...   Sep 13 2012, 17:15
|- - _Артём_   Цитата(d7d1cd @ Sep 13 2012, 20:15) Жаль,...   Sep 13 2012, 17:43
|- - MrYuran   Цитата(d7d1cd @ Sep 13 2012, 21:15) Как я...   Sep 14 2012, 06:05
- - megabuks   Держи. Для кварца 32768 прерывание раз в секунду C...   Sep 13 2012, 18:47
- - d7d1cd   Спасибо за код. Поясните его последнюю часть: КодT...   Sep 14 2012, 02:53
|- - megabuks   Цитата(d7d1cd @ Sep 14 2012, 05:53) Спаси...   Sep 14 2012, 07:13
- - hash20   Ну а если на сишке то можно вот так сбацать: (подк...   Sep 14 2012, 12:58
- - d7d1cd   Подскажите, правильно ли я понял работу таймера А,...   Sep 18 2012, 15:52
- - MrYuran   Все верно, за исключением 4.2, а именно использова...   Sep 18 2012, 17:27
|- - d7d1cd   Цитата(MrYuran @ Sep 18 2012, 21:27) ...п...   Sep 19 2012, 02:55
|- - rezident   Цитата(d7d1cd @ Sep 19 2012, 07:55) Какой...   Sep 19 2012, 18:53
|- - d7d1cd   Цитата(rezident @ Sep 19 2012, 22:53) Кон...   Sep 20 2012, 02:54
|- - d7d1cd   Цитата(d7d1cd @ Sep 20 2012, 06:54) У мен...   Sep 23 2012, 14:07
|- - d7d1cd   Цитата(rezident @ Sep 24 2012, 15:44) Это...   Sep 24 2012, 16:45
- - E.V.G.   В режиме сравнения тоже можно работать. При этом б...   Sep 25 2012, 04:15


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

 


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


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