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

 
 
> Как получить точно интервал 1ms?
sunset
сообщение Nov 8 2010, 09:43
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 655
Регистрация: 27-08-09
Из: Новосибирск
Пользователь №: 52 061



в общем нужно получить тиканья каждую миллисекунду с высокой точностью!

железо MSP430F149.

не так давно занимаюсь электроникой. думаю надо цеплять внешний кварц, потому как внутренний будет плавать больше от температуры и других факторов.
какой кварц лучше подцепить?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Nov 15 2010, 13:25
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



А никого не смутило, что нога дергается обращением к порту в прерывании? И при наличии в программе любого другого прерывания этот обработчик может быть задержан на непредсказуемое время? Для чего, интересно, разработчики заложили в таймер_A аж целых 3 Compare модуля с возможностью аппаратного дерганья ног безо всяких прерываний вообще?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
ih_
сообщение Nov 16 2010, 05:54
Сообщение #3


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

Группа: Свой
Сообщений: 77
Регистрация: 2-04-08
Из: Россия, Киров
Пользователь №: 36 422



2АНТОХА, Благодарю за потдержку. smile.gif
2rezident, Благодарю за наставления.
Цитата(Сергей Борщ @ Nov 15 2010, 16:25) *
А никого не смутило, что нога дергается обращением к порту в прерывании?...
Цитата(Shread @ Nov 15 2010, 16:43) *
До обсуждения этого еще просто дело не дошло, и без того ведь знатный холиварчик получился, ...
А вот и мудрецы пожаловали, прогнулось пространство от сечи. Вдохновляют на принятие и терпимость . smile.gif
Однако, продолжим по сути темы.
Цитата(fiatlux37 @ Nov 13 2010, 15:20) *
Короче. Кварц 5 Мгц. Минимальный шаг ровно 200нс.
...
Если у Вас еще не заработало? То Вашу задачу можно реализовать, если:
- отключить WDT (это понятно и сделано);
- запустить XT2, подождать пока стабилизируется и переключить SMCLK на него (MCLK на ваше усмотрение);
- инициализировать таймер как счетчик и запустить его на счет (частично сделано, проверьте значение CCR1 и отключите генерацию прерываний);
- инициализировать вывод (пин) как функциональный вывод от таймера (это не сложно);
- можно "усыпить" контроллер (но не глубоко). smile.gif

Лишний код:
Код
  P1IES  &=  ~0x01;
  P1IFG  &= ~0x01;                            // Disable flag
  P1IE    =  0x01;                            // Enable interrupt P1.0
...
_EINT();                                    // Enable global interrupt
...
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A0 (void)
  {    
    P1OUT ^= 0x01;
  }
Дерзайте! smile.gif

Цитата(Сергей Борщ @ Nov 15 2010, 16:25) *
...Для чего, интересно, разработчики заложили в таймер_A аж целых 3 Compare модуля с возможностью аппаратного дерганья ног безо всяких прерываний вообще?
Может я просто не понял Вас во всей вашей глубокой мудрости?
Цитата из slau144e (страница 12-11):
12.2.4 Capture/Compare Blocks
...
Capture Mode
... If a capture occurs:
- The timer value is copied into the TACCRx register;
- The interrupt flag CCIFG is set

Сообщение отредактировал ih_ - Nov 16 2010, 06:49
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Nov 16 2010, 06:45
Сообщение #4


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Если
Цитата(ih_ @ Nov 16 2010, 08:54) *
- инициализировать вывод (пин) как функциональный вывод от таймера (это не сложно);

то это
Код
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A0 (void)
  {    
    P1OUT ^= 0x01;
  }

уже не нужно.
Это по поводу
Цитата
Может я просто не понял Вас во всей вашей глубокой мудрости?


Цитата
- The interrupt flag CCIFG is set

- означает, что флаг прерывания установится.
но не означает автоматическую необходимость вызова и обработки этого прерывания


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sunset   Как получить точно интервал 1ms?   Nov 8 2010, 09:43
- - jorikdima   Цитата(sunset @ Nov 8 2010, 12:43) в обще...   Nov 8 2010, 09:49
- - rezident   "Высоту" точности обозначьте и какие-либ...   Nov 8 2010, 17:50
- - sunset   прикинул достаточно будет 8Мгц для моих целей. как...   Nov 8 2010, 19:18
|- - O.L.   Цитата(sunset @ Nov 9 2010, 01:18) прикин...   Nov 9 2010, 05:55
- - rezident   Если CL для кварца имеет типовое значение 16пФ, то...   Nov 8 2010, 19:33
- - sunset   вопрос был мною поставлен некорректно. "высок...   Nov 11 2010, 11:46
- - fiatlux37   Короче. Кварц 5 Мгц. Минимальный шаг ровно 200нс. ...   Nov 13 2010, 12:20
|- - rezident   Цитата(fiatlux37 @ Nov 13 2010, 17:20) Бу...   Nov 13 2010, 12:25
- - fiatlux37   Может код и неполон немного - быстро писал. Главно...   Nov 13 2010, 13:52
|- - rezident   Цитата(fiatlux37 @ Nov 13 2010, 18:52) Уч...   Nov 13 2010, 14:06
- - fiatlux37   У msp430f149 есть ноги, которые называются XIN и X...   Nov 13 2010, 14:30
|- - rezident   Цитата(fiatlux37 @ Nov 13 2010, 19:30) Ту...   Nov 13 2010, 14:41
- - fiatlux37   Мы с вами явно недопонимаем друг друга. Цитата из ...   Nov 13 2010, 15:04
- - rezident   Ок. Я все понял. Вам не нужна помощь, т.к. вы не х...   Nov 13 2010, 17:05
- - fiatlux37   Ну а сейчас что не понятно ??? Какие способности к...   Nov 13 2010, 17:21
|- - rezident   Цитата(fiatlux37 @ Nov 13 2010, 22:21) Ну...   Nov 14 2010, 02:54
|- - ih_   Цитата(rezident @ Nov 14 2010, 05:54) ......   Nov 14 2010, 14:00
- - fiatlux37   Да что вы говорите. Вот вам отрывок из хедера на...   Nov 14 2010, 05:03
|- - rezident   Цитата(fiatlux37 @ Nov 14 2010, 10:03) Да...   Nov 14 2010, 18:31
|- - fiatlux37   Хорошо. Думаю надо перестать спорить. У автора сей...   Nov 15 2010, 04:43
|- - ih_   Цитата(fiatlux37 @ Nov 14 2010, 17:24) ih...   Nov 15 2010, 05:58
|- - rezident   Цитата(ih_ @ Nov 15 2010, 10:58) Тактиров...   Nov 15 2010, 14:16
|- - AHTOXA   Цитата(rezident @ Nov 15 2010, 19:16) Неп...   Nov 15 2010, 16:04
|- - rezident   Цитата(AHTOXA @ Nov 15 2010, 21:04) Ну и ...   Nov 15 2010, 16:08
|- - AHTOXA   Я всё очень внимательно читаю. Вы сделали неверное...   Nov 15 2010, 16:12
|- - rezident   Цитата(AHTOXA @ Nov 15 2010, 21:12) вмест...   Nov 15 2010, 16:33
|- - AHTOXA   Цитата(rezident @ Nov 15 2010, 21:33) Моя...   Nov 15 2010, 16:49
|- - rezident   Цитата(AHTOXA @ Nov 15 2010, 21:49) Прави...   Nov 15 2010, 17:12
- - fiatlux37   ih, рассудите нас пожалуйста. Как ВЫ подключали вн...   Nov 14 2010, 14:24
|- - Shread   Цитата(Сергей Борщ @ Nov 15 2010, 16:25) ...   Nov 15 2010, 13:43
||- - ih_   Цитата...но не означает автоматическую необходимос...   Nov 16 2010, 08:10
|- - gotty   Цитата(ih_ @ Nov 16 2010, 07:54) Может я ...   Nov 16 2010, 08:16
- - fiatlux37   Раз уж к теме подключилось столько народу, то гото...   Nov 15 2010, 17:35
|- - rezident   Цитата(fiatlux37 @ Nov 15 2010, 22:35) бу...   Nov 15 2010, 17:42
|- - fiatlux37   Цитата(rezident @ Nov 15 2010, 21:42) Есл...   Nov 15 2010, 17:50
|- - rezident   Цитата(fiatlux37 @ Nov 15 2010, 22:50) Но...   Nov 15 2010, 18:05
- - Dog Pawlowa   Кажется, об этом речь? Кодvoid ClockConfigurati...   Nov 16 2010, 06:59


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

 


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


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