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

 
 
 
Reply to this topicStart new topic
> Скорость дрыгания ногой, MSP430f1611
CeDeX
сообщение Apr 12 2006, 08:52
Сообщение #1


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

Группа: Свой
Сообщений: 78
Регистрация: 4-11-04
Из: Омск
Пользователь №: 1 035



Ув. коллеги.
Делаю первые шаги в освоении мсп.
Возник такой вопрос: на мк дергаю ногой

Код
BCSCTL1 = XT2OFF | XTS | DIVA_0;        // ACLK = LFXT1CLK/1, HF mode (<8 MHz)
BCSCTL2 = SELM_3 + DIVM_0 + DIVS_0+ SELS;    // MCLK = ACLK/1
for (;;)                              
  {
    P3OUT |= 0x80;
    P3OUT &= ~0x80;
  }


Так вот длина "1" - 47 мкс, т.е. 235!!!! blink.gif тактов сист. частоты (5 МГц).
Я где-то ошибся в расчетах или мсп действительно такой тормоз в плане ввода/вывода?


--------------------
-- Если б мишки были пчелами... (с) --
Go to the top of the page
 
+Quote Post
rezident
сообщение Apr 12 2006, 09:32
Сообщение #2


Гуру
******

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



У вас неправильно написана процедура инициализации источников тактирования. Внимательно прочитайте соответствующий раздел User's Guide. CPU у вас НЕ на 8Мгц от кварца работает, а примерно на 1МГц от DCO.
P.S. кстати, а почему вы высокочастотный кварц прицепили на XT1? Обычно для кристаллов с двумя таковыми генераторами к XT1(LFXT) подключают часовой кварц, а высокочастотный на XT2. Посмотрите типовые схемы включения.
Go to the top of the page
 
+Quote Post
CeDeX
сообщение Apr 12 2006, 10:19
Сообщение #3


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

Группа: Свой
Сообщений: 78
Регистрация: 4-11-04
Из: Омск
Пользователь №: 1 035



Ладно, тогда я так поставлю вопрос: сколько тактов сист. частоты требуется, чтобы изменить значение на выходе ножки порта?

Ведь даже если у меня неправильно настроен клок-модуль, то 47 мкс - это 40!! тактов на 800 кГц.
По-моему многовато, я ждал 4-5 тактов максимум.

Подскажите где я не прав.


--------------------
-- Если б мишки были пчелами... (с) --
Go to the top of the page
 
+Quote Post
rezident
сообщение Apr 12 2006, 10:37
Сообщение #4


Гуру
******

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



Посмотрите ассемблерный листинг, что там компилятор вам сделал. И потом по таблице из того же пользовательского мануала можно посчитать такты. Если у вас компилятор IAR EW430, то можно еще проще. Запустите симулятор и пошагайте в отладчике. В симуляторе есть счетчик тактов.
Go to the top of the page
 
+Quote Post
CeDeX
сообщение Apr 12 2006, 13:51
Сообщение #5


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

Группа: Свой
Сообщений: 78
Регистрация: 4-11-04
Из: Омск
Пользователь №: 1 035



Заработало! Спасибо за помощь!

ЗЫ: для будущих поколений, которые наступят на грабли:
просто надо ждать пока установится стаб. частота

Код
BCSCTL1 = XT2OFF | XTS;    // set LFXT1CLK to HF mode
do {            // wait for stable clock
      IFG1 &= ~OFIFG;
      i = 10;
      while(--i);
} while(IFG1 & OFIFG);
BCSCTL2 = SELM_3 + DIVM_0 + DIVS_0;    // switch MCLK to LFXT1CLK


--------------------
-- Если б мишки были пчелами... (с) --
Go to the top of the page
 
+Quote Post
rezident
сообщение Apr 12 2006, 13:57
Сообщение #6


Гуру
******

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



Цитата(CeDeX @ Apr 12 2006, 19:51) *
ЗЫ: для будущих поколений, которые наступят на грабли:

У каждого начинающего грабли своего собственного изготовления biggrin.gif Если бы поиском по форуму воспользовались, то возможно и не получили бы этой граблей по лбу.
Go to the top of the page
 
+Quote Post

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

 


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


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