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

 
 
> 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
Ответов
rezident
сообщение Sep 18 2007, 13:42
Сообщение #2


Гуру
******

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



Я же вам привел формулу. Период перезагрузки таймера равен частному от частоты тактирования и значения регистра, определяющего период перезагрузки (CCR0). Если нужен период мерцания 1Гц, то частота перезагрузки таймера нужна вдвое выше 2Гц, т.к. у светодиода будет два состояния: включен и выключен. При частоте тактирования ACLK=32768Гц значение для регистра CCR0 получается 32768Гц/2Гц-1=16384-1=16383. При частоте тактирования SMCLK=DCO (по-умолчанию без инициализации источников тактирования SMCLK около 1.1МГц) 1100000Гц/2Гц-1=550000-1=549999 Но это число больше разрядности таймера (макс. 65535). Поэтому при такой частоте тактирования 1Гц не получить. Нужно использовать предделители для SMCLK и TACLK. Предделитель SMCLK (1, 2, 4, 8) находится в регистре BCSCTL2, предделитель TACLK (1, 2, 4, 8) - в регистре TACTL. Вы в конце-концов User's Guide читали или нет?
Цитата
Блин больше все не люблю когда примеры не работают sad.gif
Вот пример, в итоге не происходит прерывания. sad.gif
В чем я не прав?

Вы правы, но не понимаете смысла инициализации WDTimer
Код
WDTCTL = WDT_MDLY_32;

Если вы загляните в хидер msp430x20x3.h, то там увидите строку
Код
#define WDT_MDLY_32         (WDTPW+WDTTMSEL+WDTCNTCL)                         /* 32ms interval (default)

которая означает, что WDTimer тактируется от SMCLK с предделителем 32768. И при значении SMCLK по-умолчанию (т.к. тактирование вы опять же не настроили) период прерываний от WDT получается 1.1МГц/32768=33,56Гц. А частота мерцаний светодиода получается около 17Гц. Т.е. вы просто не видите его мерцаний.
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
- - Юрий Санвальд   AlexandrM, разрешите вопрос, почему именно MSP? Дл...   Sep 18 2007, 11:38
|- - AlexandrM   Цитата(Юрий Санвальд @ Sep 18 2007, 14:38...   Sep 18 2007, 12:25
|- - Юрий Санвальд   Цитата(AlexandrM @ Sep 18 2007, 16:25) Во...   Sep 18 2007, 12:41
|- - AlexandrM   Цитата(Юрий Санвальд @ Sep 18 2007, 15:41...   Sep 18 2007, 13:16
|- - Юрий Санвальд   Цитата(AlexandrM @ Sep 18 2007, 17:16) Не...   Sep 18 2007, 13:42
|- - AlexandrM   Цитата(Юрий Санвальд @ Sep 18 2007, 16:42...   Sep 18 2007, 13:50
|- - Юрий Санвальд   Цитата(AlexandrM @ Sep 18 2007, 17:50) Из...   Sep 18 2007, 14:21
- - 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 Текстовая версия Сейчас: 12th August 2025 - 13:02
Рейтинг@Mail.ru


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