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

 
 
> "Быстрое" прерывание
Salazar
сообщение Jul 7 2007, 07:34
Сообщение #1





Группа: Новичок
Сообщений: 11
Регистрация: 30-06-07
Пользователь №: 28 801



Здравствуйте, подскажите пожалуйста как сделать быстрое (Т=1мс) прерывание на MSP430F149.
Сейчас делаю так:
TBCTL = CNTL_3 + TBSSEL_1 + MC_1;
TBCCR0 = 33; //32768/1000
TBCCTL0 = CCIE;

#pragma vector = TIMERB0_VECTOR
__interrupt void TIMERB0_VECTOR_code( void )
{
rtc_msec++;
}

Частота ACLK = 32768. При периоде прерывания в Т=10мс основная программа работает, при уменьшении периода до 5мс основной цикл уже не выполняется. (Похоже, что программа "задыхается" в обработчике прерывания и процессор рестартится).

Ещё раз вопрос:
Как правильно сделать прерывание с периодом T=1мс на MSP430F149 ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Jul 8 2007, 17:58
Сообщение #2


Гуру
******

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



Просмотрел "по диагонали", но вроде алгоритм верный. 32768/4*375=3072000Гц. Вам нужна частота около 3МГц? ИМХО ваш алгоритм несколько усложнен. ИМХО достаточно было бы провести натурный эксперимент с выводом MCLK на пин, чтобы примерно подобрать значение DCO, MOD и RSEL и "плясать" уже от найденного значения. Тогда подстройка частоты происходила быстрее бы. Я бы взял начальные условаия RSEL=7 и DCO=3. Потом DCO и MOD определить программно. Хотя если у вас батарейное питание, а не фиксированное, тогда делаете вполне разумно.
И все-таки остается непонятным, почему же при тактовой 3МГц не успевают обрабатываться 1мс прерывания?
P.S. если хотите, чтобы желание разобраться в вашем исходнике возникло у бОльшего кол-ва людей, то пользуйтесь стандартными для TI обозначениями битов и оформляйте вставку кода в сообщение тэгами [ code ] [ /code ].
P.P.S. кстати, вы контролировали генерацию на часовом кварце или частоту ACLK? Он стартует надежно? Именно на частоте 32768?
В даташите рекомендуется притягивать выход генератора XOUT к DVss резистором 5,1МОм при питании 2,5В и меньше. Но опытным путем (и не только мной) было выяснено, что этот резистор отнюдь не мешает и при более высоком напряжении питании (3,3В например). С этим резистором LFXT генератор стартует более надежно и с любыми часовыми кварцами, правда выход на нормальный режим колебаний увеличивается почти до 1с. Некоторые люди решили, что притягивать XOUT нужно не к DVss, а к DVcc. Но я пока не проверял эффективности этого способа. См. вот эти ветки обсуждений. http://caxapa.ru/87886.html?todo=full и http://caxapa.ru/88056.html?todo=full
P.P.P.S. еще вспомнил про одну ошибку начинающих. Если вы используете обычный часовой кварц с CL=12,5pF (а именно такие чаще всего продаются), то встроенных в LF-генератор MSP430 конденсаторов 12,5pF недостаточного! Нужно дополнительно на XIN и XOUT подключить еще по конденсатору на 12pF.

Сообщение отредактировал rezident - Jul 8 2007, 18:06
Go to the top of the page
 
+Quote Post



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

 


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


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