XT1 e XT2 (migrado)

Software e Hardware para uC Texas

Moderadores: andre_luis, 51

XT1 e XT2 (migrado)

Mensagempor Fábio Pereira » 17 Out 2006 11:41

EDSONCAN
Professor


Brazil
361 Posts Posted - 19/12/2005 : 20:09:54
--------------------------------------------------------------------------------
Boa noite
Comecei a pouco tempo no MSP430f149 e gostaria de fazer uma rotina para chavear do XT1 (32K) e XT2 (8M) e vice-versa.
Construi a rotina abaixo:

void SELECXTAL8M(void){
unsigned char i;
BCSCTL1 &= ~XTS;
BCSCTL1 &= ~XT2OFF;
do{
IFG1 &= ~OFIFG;
for (i = 0xFF; i > 0; i--);
}
while ((IFG1 & OFIFG));
BCSCTL2 |= SELM_2;
}


void SELECXTAL32K(void){
unsigned char i;
BCSCTL1 = XT2OFF;
BCSCTL1 = XTS;
do{
IFG1 &= ~OFIFG;
for (i = 0xFF; i > 0; i--);
}
while ((IFG1 & OFIFG));
BCSCTL2 |= SELM_2;
}
Mas infelizmente nao obtive sucesso, alguem com experiencia nesse chip podeira me disser onde esta o erro?
Obrigado
Edson


Fabio Pereira
Conselheiro


Brazil
2205 Posts Posted - 20/12/2005 : 09:17:23
--------------------------------------------------------------------------------
Edson,

Acho que você deveria reformular a configuração do registrador BCSCTL1:


void SELECXTAL8M(void){ BCSCTL1 = 0; while ((IFG1 & OFIFG)) IFG1 &= ~OFIFG; BCSCTL2 |= SELM_2;}void SELECXTAL32K(void){ BCSCTL1 = XT2OFF + XTS; while ((IFG1 & OFIFG)) IFG1 &= ~OFIFG; BCSCTL2 |= SELM_2;}

Na sua função de seleção do XT1 (32k) você primeiro faz BCSCTL1 = XT2OFF e depois BCSCTL1 = XTS. Isto faz com que o XT2 seta reativado.

Até +

Fábio Pereira
ScTec - Automação e Projetos Especiais
www.sctec.com.br
Fábio Pereira
embeddedsystems.io
Avatar do usuário
Fábio Pereira
Word
 
Mensagens: 674
Registrado em: 16 Out 2006 09:07
Localização: Kitchener, ON

Voltar para Texas

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x