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

 
 
> MSP430F2013 из eZ430-F2013 + IAR для начинающих, MSP430F2013 из eZ430-F2013 + IAR для начинающих
AlexandrM
сообщение Sep 18 2007, 06:10
Сообщение #1


Участник
*

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



Я программист и раньше писал для ПК, Psion, PalmOS, PocketPC. Сейчас очень хочу изучить МК от TI. Имеется eZ430-F2013, IAR и желание. Но никак не могу понять принципов программирования МК. Прошу помощи. Вот есть такие вопросы:
1. на борту памяти 128Б флеша 2К:
1.1. Программа прошивается в флеш?
1.2. Мне для работы будет доступно 2К минус размер программы?
2. Имеется 100Б параметров (типа номер, пользователь и т.д.) они должны быть записаны во флеш
2.1. Есть стартове значения, как их при прошивки записать во флеш или нужно при первом запуске программы инитить?
3. Таймер. Имею код:
Цитата
#include "msp430x20x1.h"

void main(void)
{
WDTCTL = WDTPW + WDTHOLD; //выключили WD
P1DIR |= 0x01; //Порт работает на выход

TACTL = TASSEL_1 + MC_1; //Используем ACLK и движение от 0 до TACCR0
TACCR0 = 1000; //Предел 1000
TACCTL0 = CCIE; //Включить прерывание

_BIS_SR(LPM0_bits + GIE); //Перейти в режим сна
}

#pragma vector=TIMERA0_VECTOR
__interrupt void TIMERA0_ISR(void)
{
P1OUT ^=0x01; //Изменить состояние порта (как я понимаю в порт будет подавать/не подавать постоянно импульс)
}

3.1. Правильно ли я понял код?
3.2. Как сделать чтобы задержка была 1сек? Как вычислять эту цифру?
3.3. Генератор ACLK работает с одинаковой скорость в спящем режиме?
4. Как вычислять скорость выполнения каждой команды?
5. При отладке с использованием Z430-F2013 код прошивается или идет подобие эмуляции?
Пока все вопросы, надеюсь на ответы для человека с уровнем 0.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SanvaldYV
сообщение Sep 18 2007, 11:38
Сообщение #2


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

Группа: Свой
Сообщений: 125
Регистрация: 21-03-07
Из: Санкт-Петербург
Пользователь №: 26 371



AlexandrM, разрешите вопрос, почему именно MSP? Для какого применения хотите делать устройство? Я вот изучение микроконтроллеров в институте начинал с Atmel AVR, и хотя сейчас в основном работаю с LPC и MSP, но мне кажется что проще всего начать с какой-нибудь ATMEGA16 от Atmel, там все просто и линейно, нет кучи всяких разных клоков, спящих режимов и т.п. ИМХО конечно. Или выбрали MSP просто из-за наличия eZ430?
Go to the top of the page
 
+Quote Post
AlexandrM
сообщение Sep 18 2007, 12:25
Сообщение #3


Участник
*

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



Цитата(Юрий Санвальд @ Sep 18 2007, 14:38) *
AlexandrM, разрешите вопрос, почему именно MSP? Для какого применения хотите делать устройство? Я вот изучение микроконтроллеров в институте начинал с Atmel AVR, и хотя сейчас в основном работаю с LPC и MSP, но мне кажется что проще всего начать с какой-нибудь ATMEGA16 от Atmel, там все просто и линейно, нет кучи всяких разных клоков, спящих режимов и т.п. ИМХО конечно. Или выбрали MSP просто из-за наличия eZ430?


Прием передача по радиоканалу.
Изза того что хорошие отзывы о MSP430 + CC110x и наличия eZ430.

Цитата(Сергей Борщ @ Sep 18 2007, 14:39) *
Начните с моргания светодиодом. Потом поморгайте через таймер. И так постепенно дойдете до


Помигал smile.gif А вот на таймерах ничего не пойму:
Код
#include  <msp430x20x3.h>

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  P1DIR |= 0x01;                            // P1.0 output
  CCTL0 = CCIE;                             // CCR0 interrupt enabled
  CCR0 = 1000-1;
  TACTL = TASSEL_1 + MC_1;                  // ACLK, upmode

  _BIS_SR(LPM3_bits + GIE);                 // Enter LPM3 w/ interrupt
}

// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
  P1OUT ^= 0x01;                            // Toggle P1.0
}


Вот недоходит мне что это за "1000-1". Читаю что ACLK = TACLK = 32768Hz но как вычислить чему равно должно быть CCR0 чтобы получилась 1 секунда.
Go to the top of the page
 
+Quote Post
SanvaldYV
сообщение Sep 18 2007, 12:41
Сообщение #4


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

Группа: Свой
Сообщений: 125
Регистрация: 21-03-07
Из: Санкт-Петербург
Пользователь №: 26 371



Цитата(AlexandrM @ Sep 18 2007, 16:25) *
Вот недоходит мне что это за "1000-1". Читаю что ACLK = TACLK = 32768Hz но как вычислить чему равно должно быть CCR0 чтобы получилась 1 секунда.


В этом примере "1000-1" - число тактов ACLK, досчитав до которого таймер выдаст прерывание и обнулится. Если ACLK у вас 32,768 кГц то, чтобы прерывание происходило каждую секунду CCR0 = 2*32768-1.
Go to the top of the page
 
+Quote Post
AlexandrM
сообщение Sep 18 2007, 13:16
Сообщение #5


Участник
*

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



Цитата(Юрий Санвальд @ Sep 18 2007, 15:41) *
В этом примере "1000-1" - число тактов ACLK, досчитав до которого таймер выдаст прерывание и обнулится. Если ACLK у вас 32,768 кГц то, чтобы прерывание происходило каждую секунду CCR0 = 2*32768-1.


Не обижайтесь sad.gif обясните почему * 2 какая связь 2*32768-1 и 1 секундой?

Сообщение отредактировал AlexandrM - Sep 18 2007, 13:23
Go to the top of the page
 
+Quote Post
SanvaldYV
сообщение Sep 18 2007, 13:42
Сообщение #6


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

Группа: Свой
Сообщений: 125
Регистрация: 21-03-07
Из: Санкт-Петербург
Пользователь №: 26 371



Цитата(AlexandrM @ Sep 18 2007, 17:16) *
Не обижайтесь sad.gif обясните почему * 2 какая связь 2*32768-1 и 1 секундой?


Насчет *2 это я ошибся wacko.gif надо "32768/2".
Смотрите: таймер считает импульсы ACLK, его частота 32,768 кГц, значит за секунду происходит 32768/2 =16384 импульсов. Т.е. если вы хотите, чтоб прерывание происходило через секунду, то в CCR0 нужно записать это число - 1 ("нулевой" такт тоже считается), за секунду счетчик дойдет до этого числа и случиться прерывание.

Только вы уверены что у вас там на плате есть внешний кварц (32768кГц обычно) для ACLK? по-моему его на плате просто нет: http://focus.ti.com/lit/ug/slau176b/slau176b.pdf
страница №10 там к XIN/XOUT ничего не подключено, есть только ВЧ-кварц на ХТ2.
Во втором семействе там вроде внутренний осциллятор есть, но может какие то особенности есть с его настройкой, я не знаю, т.к. не работал никогда 05.gif
Попробуйте переключить таймер на SMCLK, как это у меня в примере было (поменяйте только регистры под ваш контроллер), по идее он по умолчанию от DCO работает, так нормально все должно быть. Главное не сдаваться! smile.gif
Go to the top of the page
 
+Quote Post
AlexandrM
сообщение Sep 18 2007, 13:50
Сообщение #7


Участник
*

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



Цитата(Юрий Санвальд @ Sep 18 2007, 16:42) *
Насчет *2 это я ошибся wacko.gif надо "32768/2".
Смотрите: таймер считает импульсы ACLK, его частота 32,768 кГц, значит за секунду происходит 32768/2 =16384 импульсов. Т.е. если вы хотите, чтоб прерывание происходило через секунду, то в CCR0 нужно записать это число - 1 ("нулевой" такт тоже считается), за секунду счетчик дойдет до этого числа и случиться прерывание.


Извините если уже дастал но:
CCR0 = (32768 / 2)-1;
в результатет мигание индикатора приблизительно 27 сек.

Пожалуйста дайте рабочий код sad.gif Я что не попробую все не работает sad.gif
Go to the top of the page
 
+Quote Post
SanvaldYV
сообщение Sep 18 2007, 14:21
Сообщение #8


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

Группа: Свой
Сообщений: 125
Регистрация: 21-03-07
Из: Санкт-Петербург
Пользователь №: 26 371



Цитата(AlexandrM @ Sep 18 2007, 17:50) *
Извините если уже дастал но:
CCR0 = (32768 / 2)-1;
в результатет мигание индикатора приблизительно 27 сек.

Пожалуйста дайте рабочий код sad.gif Я что не попробую все не работает sad.gif


Ну я выше написал уже, что не работал со вторым семейством, реального кода для него у меня нет, но все эти вещи должны работать. Обратите внимание на мое замечание насчет ACLK, почитайте юзергид насчет внутреннего осциллятора, какая у него частота по умолчанию? И светодиод не самый лучший способ отладки, он может мигать с большой частотой и вы просто этого не увидите, осциллографа часом нету? Без него сложновато с МК работать. Но можно.


Посмотрел сам (стало интересно): http://focus.ti.com/lit/ds/symlink/msp430f2013.pdf

Ничего не понял (точнее почти ничего просто не написано в разделе "oscillator and system clock") sad.gif

Тут кто-нибудь работал со второй серией MSP? Какие там особенности есть в плане этого "the internal LF oscillator"?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- AlexandrM   MSP430F2013 из eZ430-F2013 + IAR для начинающих   Sep 18 2007, 06:10
- - jorikdima   Цитата(AlexandrM @ Sep 18 2007, 10:10) Я ...   Sep 18 2007, 07:56
|- - AlexandrM   Цитата(jorikdima @ Sep 18 2007, 10:56) 1....   Sep 18 2007, 08:39
|- - Юрий Санвальд   Цитата(AlexandrM @ Sep 18 2007, 12:39) Во...   Sep 18 2007, 08:58
|- - rezident   Цитата(AlexandrM @ Sep 18 2007, 14:39) Во...   Sep 18 2007, 09:03
|- - AlexandrM   Цитата(rezident @ Sep 18 2007, 12:03) Пос...   Sep 18 2007, 09:41
|- - jorikdima   Цитата(AlexandrM @ Sep 18 2007, 13:41) По...   Sep 18 2007, 09:53
|- - Юрий Санвальд   Цитата(jorikdima @ Sep 18 2007, 13:53) не...   Sep 18 2007, 11:21
|- - jorikdima   Цитата(Юрий Санвальд @ Sep 18 2007, 15:21...   Sep 18 2007, 11:33
|- - Юрий Санвальд   Цитата(jorikdima @ Sep 18 2007, 15:33) не...   Sep 18 2007, 11:42
- - rezident   Цитата(AlexandrM @ Sep 18 2007, 12:10) 1....   Sep 18 2007, 08:34
- - AlexandrM   А существует какой-нибудь примерник элементарных к...   Sep 18 2007, 10:45
|- - Юрий Санвальд   Цитата(AlexandrM @ Sep 18 2007, 14:45) А ...   Sep 18 2007, 11:13
|- - jorikdima   Цитата(AlexandrM @ Sep 18 2007, 14:45) А ...   Sep 18 2007, 11:17
|- - AlexandrM   Цитата(jorikdima @ Sep 18 2007, 14:17) ht...   Sep 18 2007, 11:30
|- - Сергей Борщ   Цитата(AlexandrM @ Sep 18 2007, 14:30) Ес...   Sep 18 2007, 11:39
- - rezident   Я же вам привел формулу. Период перезагрузки тайме...   Sep 18 2007, 13:42
- - rezident   ЦитатаТут кто-нибудь работал со второй серией MSP?...   Sep 18 2007, 15:29
- - jorikdima   у автора нету кварца. А значит нет 32768! Авт...   Sep 19 2007, 08:18
- - Tech   По MSP430 читать здесь: http://www.compel.ru/libra...   Sep 19 2007, 09:01
- - Юрий Санвальд   Для AlexandrM: Только что проверил код представлен...   Sep 19 2007, 09:03


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 22:33
Рейтинг@Mail.ru


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