Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по тактовому генератору
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
Allregia
Привет премудрый ALL.

169-й чип, два кварца - часовой и 8мгц.
стартую с DCO, потом по одному включаю кварцевые генаторы. хочетьяс знать включились ли они (или может кварц забыли впаять).
Для XT2 сделал такую фунцкию:
Код
bool XT2Control(bool s){  // 0 - off, 1 - on, return true if ON was successful
  int i;
  if (!s){
    BCSCTL1 |= XT2OFF;
    return true;
  }
    BCSCTL1 &= ~XT2OFF;
  i=100;
  do{
          IFG1 &= ~OFIFG;  //clear OFIFG
          FLAG10MS=0; while (!FLAG10MS); i--;
        } while((i>0)&&((IFG1  & OFIFG)!=0));
  return (OFIFG==0);


Но она всегда возвращает false!

FLAG10MS - устанавливается в преревании от WDT.

P.S. С часовым кварцем, как я понял по описанию, вообще нельзя определить работает он или нет ?
jorikdima
запитайте таймер от часового кварца и анализируйте тикает он или нет
Сергей Борщ
Цитата(Allregia @ Jul 23 2009, 13:38) *
Но она всегда возвращает false!
Естественно. Всмотритесь внимательно в строчку return (OFIFG==0); и сравните со строчкой &&((IFG1 & OFIFG)!=0)
Allregia
Цитата(jorikdima @ Jul 23 2009, 14:30) *
запитайте таймер от часового кварца и анализируйте тикает он или нет


А он не переключится на тактирование от DCO ?


И почему не работает вышеприведенный код для XT2 ?
SSerge
Дык,
Цитата
Note: No Oscillator Fault Detection for LFXT1 in LF Mode
Oscillator fault detection is only applicable for LFXT1 in HF mode and XT2.
There is no oscillator fault detection for LFXT1 in LF mode.

Если сильно хочется можно анализировать наличие ACLK.
Например, выдать его наружу через P5.6 (P5SEL.6=1) и анализировать P5IN.6
Сергей Борщ
Цитата(Allregia @ Jul 23 2009, 14:38) *
И почему не работает вышеприведенный код для XT2 ?
Ну неужели это надо разжевывать? OFIFG - константа, равная (1<<n), n не помню. Она никогда не будет равна нулю, что вам и сообщет функция.
rezident
Цитата(Allregia @ Jul 23 2009, 16:38) *
P.S. С часовым кварцем, как я понял по описанию, вообще нельзя определить работает он или нет ?
Можно. Для этого используйте внутреннее соединение ACLK и входа CCI2B TimerA, который работает в режиме захвата с тактированием от SMCLK, который в свою очередь имеет источником DCO. И учтите, что для включения генератора с часовым кварцем требуется время в несколько сотен миллисекунд. Таково время старта часового генератора.
Allregia
Цитата(Сергей Борщ @ Jul 23 2009, 16:36) *
Ну неужели это надо разжевывать? OFIFG - константа, равная (1<<n), n не помню. Она никогда не будет равна нулю, что вам и сообщет функция.


Блин! Слоня-то я и не приметил sad.gif
Конечно надо писать return ((IFG1 & OFIFG)==0)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.