• Domingo 22 de Diciembre de 2024, 21:01

Autor Tema:  Programacion Del Oscilador En El Msp430f169  (Leído 1255 veces)

Dok

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Programacion Del Oscilador En El Msp430f169
« en: Viernes 14 de Marzo de 2008, 16:49 »
0
Hola amigos, estoy programando el microcontrolador para un proyecto que tengo y tengo un problema al inicializar el oscilador del microcontrolador, mi codigo es el siguiente:

Código: Text
  1.  
  2. void InitOsc(void)
  3. {
  4.   WDTCTL = WDTPW | WDTHOLD;   // Paramos el watchdog timer
  5.   BCSCTL1 |= XTS;        // XT1 ~ high-frequency
  6.   _BIC_SR(OSCOFF);           // turn on XT1 oscillator
  7.  
  8.   do           // wait in loop until crystal is stable
  9.   {
  10.     IFG1 &= ~OFIFG;
  11.     for (ii = 0xFFFF; ii > 0; ii--);
  12.   }
  13.   while (IFG1 & OFIFG);
  14.  
  15.   BCSCTL1 |= DIVA1 | DIVA0;      // ACLK = XT1 / 8 = 1 MHz
  16.   IE1 &= ~WDTIE;         // desactiva WDT int.
  17.  
  18.   WDTCTL = WDTPW | WDTTMSEL | WDTCNTCL | WDTSSEL | WDTIS1;
  19.       // use WDT as timer, flag each. 512 pulses from ACLK
  20.   IFG1 &= ~WDTIFG;       // clear WDT int. flag
  21.   while ((IFG1 & WDTIFG)!=0);       // cuenta 1024 pulsos XT1 <---Problema
  22.  
  23.   IFG1 &= ~OFIFG;       // clear osc. fault int. flag
  24.   DCOCTL |= DCO2 | DCO1 | DCO0;
  25.   BCSCTL1 |= RSEL2 | RSEL1 | RSEL0;// MCLK = DCO, 8 MHz  (MCLK=Reloj de la CPU)
  26. }
  27.  
  28.  

Y el problema se encuentra en el segundo while [while ((IFG1 & WDTIFG)!=0);] en donde se queda trabado y no se como haerle salir de ahi.

Espero que podais ayudarme amigos. Saludos!!!