Autor Tema: NO entiendo éste pequeño ejemplo de configuración de oscillador?  (Leído 3645 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado STAI

  • PIC12
  • **
  • Mensajes: 81
Buen día estoy mirando unos ejemplos la Sección 7 del oscilador de la familia dsPIC33F, que son los siguientes:

Example 7-1: Code Example for Using PLL with Primary Oscillator (POSC)

// Select Internal FRC at POR
_FOSCSEL(FNOSC_FRC);
// Enable Clock Switching and Configure POSC in XT mode
_FOSC(FCKSM_CSECMD & OSCIOFNC_OFF & POSCMD_XT);
main()
{
// Configure PLL prescaler, PLL postscaler, PLL divisor
PLLFBD=30; // M=32
CLKDIVbits.PLLPOST=0; // N1=2
CLKDIVbits.PLLPRE=0; // N2=2
// Initiate Clock Switch to Primary Oscillator with PLL
(NOSC=0b011)
// Wait for Clock switch to occur
while (OSCCONbits.COSC != 0b011)
}

El título del ejemplo dice que PLL con oscilador primario, pero no entiendo por qué escogen oscilador FRC...

Example 7-2: Code Example for Using PLL with 7.37 MHz Internal FRC

// Select Internal FRC at POR
_FOSCSEL(FNOSC_FRC);
// Enable Clock Switching and Configure Primary Oscillator in XT mode
_FOSC(FCKSM_CSECMD & OSCIOFNC_OFF & POSCMD_XT);
main()
{
// Configure PLL prescaler, PLL postscaler, PLL divisor
PLLFBD=41; // M=43
CLKDIVbits.PLLPOST=0; // N1=2
CLKDIVbits.PLLPRE=0; // N2=2
// Initiate Clock Switch to FRC oscillator with PLL (NOSC=0b001)
// Wait for Clock switch to occur
while (OSCCONbits.COSC != 0b001)
}

Y en éste segundo dice que va a utilar oscilador FRC y porque  en el registro FOSC selecciona XT como oscilador primario, no debio que haberce desabilitado?

Agradezco todo comentio y respuesta.
Álvaro I. Sandoval T.
Ing. en Control Electrónico e Instrumentación

Desconectado STAI

  • PIC12
  • **
  • Mensajes: 81
Alguien que me ayude con el siguiente "warning" de MPLAB C30?
« Respuesta #1 en: 11 de Mayo de 2009, 20:39:33 »
mcomparator.c: In function 'main':
mcomparator.c:27: warning: control reaches end of non-void function


Ha y otra cosita, estoy probando un ejemplo de configuración de osciladores, pero no entiendo para qué la siguiente línea:

// Wait for Clock switch to occur
while (OSCCONbits.COSC != 0b011)
{}

Agradezco toda ayuda y comentario.
Álvaro I. Sandoval T.
Ing. en Control Electrónico e Instrumentación

Desconectado blackcat

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 600
Re: NO entiendo éste pequeño ejemplo de configuración de oscillador?
« Respuesta #2 en: 11 de Mayo de 2009, 21:01:38 »
En el primer ejemplo entiendo que el FRC es para iniciar el micro con ese oscilador mientras se estabiliza el oscilador con cristal ....

Ahora en el segundo ... creo ... que se elige XT porque la frecuencia de entrada está en un rango medio ... si fuese mayor a 10MHz se elije HS.

Lo que no entiendo es como el micro sabe cuando hacer el switch ... ???

saludos!
Control Automático, DSP & Microcontroladores

Desconectado blackcat

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 600
Re: Alguien que me ayude con el siguiente "warning" de MPLAB C30?
« Respuesta #3 en: 11 de Mayo de 2009, 21:06:55 »
Parece que pusiste olvidaste el return ...

Por ejemplo, si pones:
Código: C
  1. int FUNCION( char dato1, char dato2 )
  2. {
  3.  
  4. int valor_salida;
  5.  
  6.  // codigo etc etc ...
  7.  
  8. return valor_salida;
  9.  
  10. }

al declarar int FUNCION .. debes poner al final el return de algun elemento int...

Si por ejemplo, pones void la funcion no devuelve nada ...

Código: C
  1. void FUNCION( char dato1, char dato2 )
  2. {
  3.  
  4. int valor_salida;
  5.  
  6.  // codigo etc etc ...
  7.  
  8. }

En la linea: while (OSCCONbits.COSC != 0b011)

Lo que se hace es esperar hasta que el dspic conmute su oscilador principal a otro, a eso le llaman switch
Control Automático, DSP & Microcontroladores

Desconectado STAI

  • PIC12
  • **
  • Mensajes: 81
Re: NO entiendo éste pequeño ejemplo de configuración de oscillador?
« Respuesta #4 en: 11 de Mayo de 2009, 21:23:20 »
Muchas gracias por su tiempo, pero siempre debo comenzar el dsPIC con el oscilador FRC, o se puede hacer con oscilador primario de una...
Álvaro I. Sandoval T.
Ing. en Control Electrónico e Instrumentación

Desconectado STAI

  • PIC12
  • **
  • Mensajes: 81
Re: Alguien que me ayude con el siguiente "warning" de MPLAB C30?
« Respuesta #5 en: 11 de Mayo de 2009, 21:29:12 »
Muchas gracias por su tiempo, pues lo que pasa es que estoy aprendiendo a manejar los dsPIC, y apenas estoy configurando el oscilador y le dí compilar y me apareció esos warning, el código es el siguiente, observando los ejemplos de configuración?

#include "p33FJ64GP802.h"

                        
_FOSCSEL(FNOSC_PRIPLL & IESO_ON);            // Primary oscillator (XT, HS, EC) w/ PLL, Two-speed Oscillator Startup : Enabled
                  
_FOSC(FCKSM_CSDCMD & OSCIOFNC_OFF & POSCMD_XT);   // Clock switching and clock monitor:Disabled & OSC2 is clock O/P & XT oscillator

_FWDT(FWDTEN_OFF);                             // Turn off Watchdog Timer



int main(void)
{
         // Configure PLL prescaler, PLL postscaler, PLL divisor for XT 10MHz for 40MIPS
PLLFBD=30;       // M=32
CLKDIVbits.PLLPOST=0;    // N1=2
CLKDIVbits.PLLPRE=0;    // N2=2
CLKDIVbits.DOZEN=0;   // Processor clock and peripheral clock ratio forced to 1:1

// Initiate Clock Switch to Primary Oscillator with PLL (NOSC=0b011)
// Wait for Clock switch to occur
while (OSCCONbits.COSC != 0b011)
{}

}

Y siempre hay que esperar para la conmutación del oscilador?
Álvaro I. Sandoval T.
Ing. en Control Electrónico e Instrumentación

Desconectado blackcat

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 600
Re: Alguien que me ayude con el siguiente "warning" de MPLAB C30?
« Respuesta #6 en: 11 de Mayo de 2009, 21:45:27 »
Hola! ... yo todavia no he tenido aplicaciones en donde cambio de oscilador varias veces ... sin embargo, si he puesto que haga switch entre el oscilador interno y el cristal al principio.. (no sabia lo que hacia!)

Si habilitas el switch parece que si hay que esperar ...

Ahora que preguntas, yo nunca le he puesto atencion a la conmutacion del oscilador  :roll: lo que hago es bajar los ejemplos de microchip y listo ...

Saludos!

Control Automático, DSP & Microcontroladores

Desconectado STAI

  • PIC12
  • **
  • Mensajes: 81
Re: Alguien que me ayude con el siguiente "warning" de MPLAB C30?
« Respuesta #7 en: 12 de Mayo de 2009, 01:08:25 »
Muchas gracias por su tiempo y comentarios...

Sigo esperando más comentarios!
Álvaro I. Sandoval T.
Ing. en Control Electrónico e Instrumentación

Desconectado STAI

  • PIC12
  • **
  • Mensajes: 81
Hay que comenzar el dsPIC con oscilador FRC y despues pasarlo a oscilador XT?
« Respuesta #8 en: 12 de Mayo de 2009, 12:30:01 »
Buen día señores, estoy mirando unos ejemplos y observo que cuando van a utilizar oscilador primario con XT, ellos primiero configuran con oscilador FRC, y despues lo pasan al oscilador primario, siempre hay que hacer esa conmutación o se puede comenzar de una vez con el oscilador primario?
Álvaro I. Sandoval T.
Ing. en Control Electrónico e Instrumentación

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: NO entiendo éste pequeño ejemplo de configuración de oscillador?
« Respuesta #9 en: 12 de Mayo de 2009, 17:49:08 »
He combinado tres hilos en uno sólo. Stai, te ruego que en lo sucesivo para preguntas relacionadas con el mismo problema, continúes en el mismo hilo.

Desconectado STAI

  • PIC12
  • **
  • Mensajes: 81
Re: NO entiendo éste pequeño ejemplo de configuración de oscillador?
« Respuesta #10 en: 12 de Mayo de 2009, 23:49:55 »
Ok nocturno, disculpa, pero cómo hago para que observen mi nueva duda... el título seguiría el mismo, cierto!.
Álvaro I. Sandoval T.
Ing. en Control Electrónico e Instrumentación

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: NO entiendo éste pequeño ejemplo de configuración de oscillador?
« Respuesta #11 en: 13 de Mayo de 2009, 02:12:08 »
Entiendo que la duda está relacionada, por lo que no es nueva. De todas formas, cada vez que escribes un mensaje, aunque esté en un hilo viejo, se pone al principio del foro y se marca en negrita por lo que la gente sabrá que hay algo nuevo ahí.