Microcontroladores PIC => dsPIC => Mensaje iniciado por: STAI en 10 de Mayo de 2009, 00:24:57
Título: NO entiendo éste pequeño ejemplo de configuración de oscillador?
Publicado por: STAI en 10 de Mayo de 2009, 00:24:57
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.
Título: Alguien que me ayude con el siguiente "warning" de MPLAB C30?
Publicado por: STAI 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.
Título: Re: NO entiendo éste pequeño ejemplo de configuración de oscillador?
Publicado por: blackcat 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!
Título: Re: Alguien que me ayude con el siguiente "warning" de MPLAB C30?
Publicado por: blackcat en 11 de Mayo de 2009, 21:06:55
Parece que pusiste olvidaste el return ...
Por ejemplo, si pones:
Código: C
int FUNCION(char dato1,char dato2 )
{
int valor_salida;
// codigo etc etc ...
return valor_salida;
}
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
void FUNCION(char dato1,char dato2 )
{
int valor_salida;
// codigo etc etc ...
}
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
Título: Re: NO entiendo éste pequeño ejemplo de configuración de oscillador?
Publicado por: STAI 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...
Título: Re: Alguien que me ayude con el siguiente "warning" de MPLAB C30?
Publicado por: STAI 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?
_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?
Título: Re: Alguien que me ayude con el siguiente "warning" de MPLAB C30?
Publicado por: blackcat 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!
Título: Re: Alguien que me ayude con el siguiente "warning" de MPLAB C30?
Publicado por: STAI en 12 de Mayo de 2009, 01:08:25
Muchas gracias por su tiempo y comentarios...
Sigo esperando más comentarios!
Título: Hay que comenzar el dsPIC con oscilador FRC y despues pasarlo a oscilador XT?
Publicado por: STAI 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?
Título: Re: NO entiendo éste pequeño ejemplo de configuración de oscillador?
Publicado por: Nocturno 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.
Título: Re: NO entiendo éste pequeño ejemplo de configuración de oscillador?
Publicado por: STAI 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!.
Título: Re: NO entiendo éste pequeño ejemplo de configuración de oscillador?
Publicado por: Nocturno 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í.