Перейти к содержанию
    

Помогите начинающему чайнику с msp430

Здравствуйте! Помогите пожалуйста разобраться, что я не так делаю.Есть простенькая прога для msp430:

 #include "msp430x20x3.h"
#include <intrinsics.h>

  unsigned int i = 0;

void main(void)
{
  WDTCTL= WDTPW+WDTHOLD;
  P1DIR|=0x01;
  TACCR0=65500;
  P1OUT|=0x01;
  TACTL|=TACLR+ID_2+TASSEL_2+ID_1;
  TACCTL0|=CCIE;
   

__enable_interrupt();

  
while (1); 
  }

#ifdef __IAR_SYSTEMS_ICC__
#if __VER__ < 200
interrupt[TIMERA0_VECTOR] void TimerA0_ISR(void)
#else
#pragma vector=TIMERA0_VECTOR
__interrupt void TimerA0_ISR( void )
#endif
#endif

#ifdef __CROSSWORKS_MSP430
void TimerA0_ISR(void)   __interrupt[TIMERA0_VECTOR]
#endif

#ifdef __TI_COMPILER_VERSION__
__interrupt void TimerA0_ISR(void);
TIMERA0_ISR(TimerA0_ISR)
__interrupt void TimerA0_ISR(void)
#endif
   
{
  __disable_interrupt();
if (P1OUT == 0x00)

{ P1OUT|=0x01;
i+=500;
TACCR0-=i;
}
  else 
  {P1OUT|=0x00;
    TACCR0-=i;
  } 
__enable_interrupt();  
}

На обработчик прерывания можно в данном случае особо не обращать внимания, не в нем суть. Вроде как для инициализации таймера я пишу то, что надо. В симуляторе же (и на эмуляторе - ez430-F2013) видно ,что счетный регистр таймера TAR никак вообще не изменяется...

Соответственно вопросы:

1) Как заставить таймер таки считать?

 

2) Насчет прерывания - как проверить работу обработчика? (разрешение прерывания по сравнению - CCIE установлено), руками ставлю CCIFG (ведь он аппаратно ставиться, когда таймер досчитывает до значения в TACCR0), прерывания разрешаю - результат - никакой....

 

Помогите плз!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. В регистре TACTL при инициализации в биты MCx записывается 00, таймер при этом остановлен.

 

2. В обработчике прерывания нет необходимости писать __disable_interrupt(); Прерывания и так уже запрещены при входе в обработчик.

И разрешать в конце тоже не нужно. После исполнения команды reti будет восстановлено из стека прежнее содержимое регистра статуса (SR) и бит GIE в том числе, т.е. прерывания снова будут разрешены.

 

PS. Кстати, оператор

P1OUT|=0x00;

делает совсем не то на что Вы, должно быть, рассчитывали. По правде сказать, он совсем ничего не делает. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В симуляторе же (и на эмуляторе - ez430-F2013) видно ,что счетный регистр таймера TAR никак вообще не изменяется...
В иаровском симуляторе периферия не симулируется. Если не работает и в эмуляторе - надо искать ошибки в программе.

 

1) Как заставить таймер таки считать?
Правильно его принициализировать. Почитайте это сообщение, там как раз про использование "+" в формировании констант. Может ошибка в этом.

 

2) Насчет прерывания - как проверить работу обработчика? (разрешение прерывания по сравнению - CCIE установлено), руками ставлю CCIFG (ведь он аппаратно ставиться, когда таймер досчитывает до значения в TACCR0), прерывания разрешаю - результат - никакой....
В эмуляторе поставить точку останова на начало обработчика. Запустить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте. Я тоже начинающий, и еще более чайник :)

Подскажите, пожалуйста, как в CCE 2.0 войти в режим симулятора, никак не могу понять. Вроде в свойствах проекта на режим отладки устанавливаю - "simulator", но при запуске debuge ничего не происходит. Есть какое-нибудь руководство по использованию самого CCE, у меня есть только техасовские руководства по компилятору и ассемблеру.

И еще - генератор такотовой частоты запускается сразу после подачи питания или его надо сначала сконфигурировать? Тот же вопрос про генератор опорного напряжения.

Если кто наткнется на эту тему - ответьте, пожалуйста. Спасибо. :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте. Я тоже начинающий, и еще более чайник :)

Здравствуйте!

Подскажите, пожалуйста, как в CCE 2.0 войти в режим симулятора, никак не могу понять. Вроде в свойствах проекта на режим отладки устанавливаю - "simulator", но при запуске debuge ничего не происходит. Есть какое-нибудь руководство по использованию самого CCE, у меня есть только техасовские руководства по компилятору и ассемблеру.

Как чайник чайнику рекомендую использовать для разработки кода и отладки IAR Embedded Workbench. Скачивание и лечение неоднократно обсуждалось...

И еще - генератор такотовой частоты запускается сразу после подачи питания или его надо сначала сконфигурировать?

После сигнала PUC (т.е. включения микроконтроллера) источником для MCLK и SMCLK (основные тактирующие сигналы контроллера) является DCOCLK (цифровой генератор) c частотой около 800 кГц.

 

Если это устраивает, то ничего конфигурировать не нужно, но если вам необходимо стабильное тактирование на определенной частоте от внешнего резонатора/генератора или требуется функционирование DCOCLK на другой частоте, следует сконфигурировать основной модуль тактирования с помощью регистров DCOCTL, BCSCTL1 и BCSCTL2.

Тот же вопрос про генератор опорного напряжения.

Выбор источника опорного напряжение, его включение и задание напряжения производится посредством регистра ADC10CTL0. Само-собой ничего работать не будет...

Если кто наткнется на эту тему - ответьте, пожалуйста. Спасибо. :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Большое спасибо! Какой хороший ответ - все ясно и четко, именно для чайника. И именно о таком ответе я мечтала. :) спасибо еще раз

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вот еще вопрос от чайника. Подскажите, если кто наткнется, какую-нибудь отладку, чтобы работала с IARом в режиме эмулятора, и позволяла бы программировать прямо на плате, т.к.. контроллер(MSP430) уже напаян. Вот какие запросы :) MSP-FET430PIF случаем не подойдет? Если подойдет, можно какую-нибудь ссылочку на схему, в руководстве на MSP-FET есть, но можно как-нибудь попроще и почетче?

Заранее спасибо, если кто ответит :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вот еще вопрос от чайника. Подскажите, если кто наткнется, какую-нибудь отладку, чтобы работала с IARом в режиме эмулятора, и позволяла бы программировать прямо на плате, т.к.. контроллер(MSP430) уже напаян. Вот какие запросы :) MSP-FET430PIF случаем не подойдет? Если подойдет, можно какую-нибудь ссылочку на схему, в руководстве на MSP-FET есть, но можно как-нибудь попроще и почетче?

Заранее спасибо, если кто ответит :)

Не вижу необходимости в создании кросспостов, которые, кстати, запрещены Правилами форума.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте! Зашиваю программу в контроллер m430g2553. В отладчике (программаторе) контроллер работает, а на макетной плате - нет. В чем дело?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте! Зашиваю программу в контроллер m430g2553. В отладчике (программаторе) контроллер работает, а на макетной плате - нет. В чем дело?

Для начала найдите 10 отличий.

Ну и поподробнее бы..

Что за отладчик? ланчпад?

Что за плата, что за программа. Кварцы, питание, блокировочные конденсаторы.. итд

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

извиняюсь.. Вы совершенно правы программатор лаунчпад. Программа простая сробоскоп из 2-х светодиодов. На макетной плате только светодиоды и контроллер. Больше ничего не устонавливал. На солько мне известно , то наличие кварца не обязательно. Но я пробовал и сним ( 32 кГц) ничего не работает автономно от лаунчпада. Я так понимаю необходим какой-то обвес для контроллера. Вот и хочу. цзнать какой имнно нужен. Заранее спасибо.. Поиском не ползовался так как пишу с телефона.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я так понимаю необходим какой-то обвес для контроллера.

Для начала керамику 0,1мкФ непосредственно у ног питания, электролит 10мк тоже не помешает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...