Utilizar el oscilador interno del pic 18F4550 con SDCC
2 participantes
Página 1 de 1.
Utilizar el oscilador interno del pic 18F4550 con SDCC
Hola a Tod@s
Estoy tratando de poner a funcionar un pic 18F4550 y quiero utilizar el oscilador interno y estoy haciendo una prueba activando un led (al principio era hacer un blinking pero no me funciona asi que lo cambie a solo encenderlo), el led lo enciendo con lógica negativa, o sea se activa con cero voltios a la salida del pic.
No sé si las configuraciones de los CONFIGs están bien.
Este es el código
Alguna ayuda por favor.
Estoy tratando de poner a funcionar un pic 18F4550 y quiero utilizar el oscilador interno y estoy haciendo una prueba activando un led (al principio era hacer un blinking pero no me funciona asi que lo cambie a solo encenderlo), el led lo enciendo con lógica negativa, o sea se activa con cero voltios a la salida del pic.
No sé si las configuraciones de los CONFIGs están bien.
Este es el código
- Código:
#include <pic18f4550.h>
code char at __CONFIG1L CONFIG1L = _PLLDIV_NO_DIVIDE__4MHZ_INPUT__1L & _CPUDIV__OSC1_OSC2_SRC___1__96MHZ_PLL_SRC___2__1L & _USBPLL_CLOCK_SRC_FROM_OSC1_OSC2_1L;
code char at __CONFIG1H CONFIG1H = _OSC_INTOSC__INTOSC_RA6__USB_EC_1H & _FCMEN_OFF_1H & _IESO_OFF_1H;
code char at __CONFIG2L CONFIG2L = _PUT_OFF_2L & _BODEN_ON_2L & _BODENV_2_0V_2L & _VREGEN_OFF_2L;
code char at __CONFIG2H CONFIG2H = _WDT_ON_2H & _WDTPS_1_32768_2H;
code char at __CONFIG3H CONFIG3H = _CCP2MUX_RC1_3H & _PBADEN_PORTB_4_0__CONFIGURED_AS_DIGITAL_I_O_ON_RESET_3H & _LPT1OSC_OFF_3H & _MCLRE_MCLR_ON_RE3_OFF_3H;
code char at __CONFIG4L CONFIG4L = _STVR_ON_4L & _LVP_ON_4L & _ENICPORT_OFF_4L & _ENHCPU_OFF_4L & _BACKBUG_OFF_4L;
code char at __CONFIG5L CONFIG5L = _CP_0_OFF_5L & _CP_1_OFF_5L & _CP_2_OFF_5L & _CP_3_OFF_5L;
code char at __CONFIG5H CONFIG5H = _CPB_OFF_5H;
code char at __CONFIG6L CONFIG6L = _WRT_0_OFF_6L & _WRT_1_OFF_6L & _WRT_2_OFF_6L & _WRT_3_OFF_6L;
code char at __CONFIG6H CONFIG6H = _WRTC_OFF_6H & _WRTB_OFF_6H;
code char at __CONFIG7L CONFIG7L = _EBTR_0_OFF_7L & _EBTR_1_OFF_7L & _EBTR_2_OFF_7L & _EBTR_3_OFF_7L;
code char at __CONFIG7H CONFIG7H = _EBTRB_OFF_7H;
void main()
{
ADCON1=0x0F;
TRISAbits.TRISA1=0;
PORTAbits.RA1=0;
}
Alguna ayuda por favor.
JosePablo- Participante
- Mensajes : 22
Fecha de inscripción : 10/01/2009
Edad : 43
Localización : Costa Rica
Re: Utilizar el oscilador interno del pic 18F4550 con SDCC
Hola espero que no sea muy tarde para responder, mira de momento no he usado el oscilador interno del 18f4550, pero si el interno de un 16f819, y por lo que acabo de leer del data sheet, es muy similar para "configurar" el interno del 16f81 y el interno del 18f4550.
Por lo que vi en tu config word, si esta bien, pero de acuerdo a la pagina 33 del datasheet del Micro que usas, esta el registro OSCCON
en el cual tienes los siguientes bits
IRCF2:IRCF0 son los bits para configurar la velocidad desde 32kHz hasta 8MHz del oscilador
SCS1:SCS0 son los bits para seleccion del sistema de reloj, de acuerdo al datasheet
1x es para seleccionar el oscilador interno
Por lo que creo que tu código quedaría mas o menos así
Por lo que vi en tu config word, si esta bien, pero de acuerdo a la pagina 33 del datasheet del Micro que usas, esta el registro OSCCON
en el cual tienes los siguientes bits
IRCF2:IRCF0 son los bits para configurar la velocidad desde 32kHz hasta 8MHz del oscilador
SCS1:SCS0 son los bits para seleccion del sistema de reloj, de acuerdo al datasheet
1x es para seleccionar el oscilador interno
Por lo que creo que tu código quedaría mas o menos así
- Código:
#include <pic18f4550.h>
code char at __CONFIG1L CONFIG1L = _PLLDIV_NO_DIVIDE__4MHZ_INPUT__1L & _CPUDIV__OSC1_OSC2_SRC___1__96MHZ_PLL_SRC___2__1L & _USBPLL_CLOCK_SRC_FROM_OSC1_OSC2_1L;
//Aguas con esta, ¿vas a usar el PLL?
code char at __CONFIG1H CONFIG1H = _OSC_INTOSC__INTOSC_RA6__USB_EC_1H & _FCMEN_OFF_1H & _IESO_OFF_1H;
//Aqui defines el oscilador interno, ok
code char at __CONFIG2L CONFIG2L = _PUT_OFF_2L & _BODEN_ON_2L & _BODENV_2_0V_2L & _VREGEN_OFF_2L;
code char at __CONFIG2H CONFIG2H = _WDT_ON_2H & _WDTPS_1_32768_2H;
code char at __CONFIG3H CONFIG3H = _CCP2MUX_RC1_3H & _PBADEN_PORTB_4_0__CONFIGURED_AS_DIGITAL_I_O_ON_RESET_3H & _LPT1OSC_OFF_3H & _MCLRE_MCLR_ON_RE3_OFF_3H;
code char at __CONFIG4L CONFIG4L = _STVR_ON_4L & _LVP_ON_4L & _ENICPORT_OFF_4L & _ENHCPU_OFF_4L & _BACKBUG_OFF_4L;
code char at __CONFIG5L CONFIG5L = _CP_0_OFF_5L & _CP_1_OFF_5L & _CP_2_OFF_5L & _CP_3_OFF_5L;
code char at __CONFIG5H CONFIG5H = _CPB_OFF_5H;
code char at __CONFIG6L CONFIG6L = _WRT_0_OFF_6L & _WRT_1_OFF_6L & _WRT_2_OFF_6L & _WRT_3_OFF_6L;
code char at __CONFIG6H CONFIG6H = _WRTC_OFF_6H & _WRTB_OFF_6H;
code char at __CONFIG7L CONFIG7L = _EBTR_0_OFF_7L & _EBTR_1_OFF_7L & _EBTR_2_OFF_7L & _EBTR_3_OFF_7L;
code char at __CONFIG7H CONFIG7H = _EBTRB_OFF_7H;
void main()
{
ADCON1=0x0F;
TRISAbits.TRISA1=0;
PORTAbits.RA1=0;
//Esto si quieres que el oscilador trabaje a 8MHz
IRCF2=1;
IRCF1=1;
IRCF0=1;
//Seleccion de sistema de clock
SCS1=1;
/*En caso de que no funque prueba
OSCCONbits.IRCF2=1;
no te digo si funciona, puesto que no lo he probado, pero
haber si mas al rato, ya con certeza te digo si funca o no
*/
}
Saludos
maigke- Asiduo del Foro
- Mensajes : 210
Fecha de inscripción : 12/04/2009
Edad : 47
Localización : Mexico
Temas similares
» Ejemplos para PIC 18f4550 en SDCC
» SDCC - NF....
» SDCC USB libreria
» Creación de una libreria para utilizar las funciones en un PIC18F4550 y en un MCS8051
» Ejemplo de librería lcd_sdcc_sgr.h
» SDCC - NF....
» SDCC USB libreria
» Creación de una libreria para utilizar las funciones en un PIC18F4550 y en un MCS8051
» Ejemplo de librería lcd_sdcc_sgr.h
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.