Problema 18F2550

Hola, os llevo leyendo mucho tiempo pero no posteaba. La verdad, me sabe mal empezar con una duda, pero espero empezar a aportar proyectos interesantes al foro.

Estoy comenzando con la programación de este PIC (ya he programado otros) y para empezar estoy haciendo un "Hola mundo" de lo más sencillo, hacer parpadear un LED

Decir que la programación la hago con MPLAB y PIC BASIC PRO 3. Los Configuration Bits no los pongo en el código sino manualmente en el programa. El código es el siguiente:

Código:
TrisB = 0
led var portb.3
 
main:
high led
pause 500
low led 
pause 500
goto main
end

Es lo mas sencillo que se puede hacer, pero no funciona y no se por qué. Para comprobarlo estoy usando PIC18 SIMULATOR IDE y el puerto B3 se queda en estado alto siempre...

Subo el .hex a ver si me podéis echar una mano.

PD: PBADEN está configurado de tal forma que los pines estén como entradas o salidas digitales. La ultima duda es: ¿En caso de seleccionar el oscilador interno para declarar la frecuencia sería así?
Código:
`Para 4 MHz
DEFINE OSC 4

Un saludo y muchas gracias de antemano!
 

Adjuntos

  • Archivo.rar
    283 bytes · Visitas: 11
Hola amigo, la declaración del oscilador esta bien como la colocas. La declaración y todo lo demás lo veo perfecto pero la verdad que no entiendo porque te hace eso. De todas formas yo voy a probar y te respondo. ;)
 
Haber Prueba esto:

`Para 4 MHz
DEFINE OSC 4

TrisB = 0
PORTB=0 'configurando PORTB.
LATB=0

led var portb.3

main:
high led
pause 500
low led
pause 500
goto main
end
 
syryus. He simulado el código del clasico programa del LED y si funciona.
Pero simulado con PROTEUS por que efectivamente con el PIC18 Simulator IDE no anda.
También copie tu programa directamente al editor modificandolo para tal programa,
y compilandolo para crear el HEX el cúal tambien funciona en PROTEUS.
PD. El hex que subiste también se ejecuta sin problemas.
Nota. Use PROTEUS 7.8 SP2, MicroCode Studio Plus 3 con MPASM 5.35 y PIC18 Simulator IDE 2.55
Aqui dejo los archivos de la simulación. :apreton:
 

Adjuntos

  • LED 18F2550.rar
    23.3 KB · Visitas: 55
Última edición:
Pues nada, no se por qué narices sigue sin funcionar...

Probado en protoboard y nada. El PIC lo lee, graba, verifica correctamente, etc... Así que descarto que esté mal. La tensión que le llega al pic es la correcta, pero creo que el fallo va a estar en la configuración del oscilador interno. ¿Alguien que lo halla hecho?
 
El encapsulado de 28 pines. Cristal no estoy usando, estoy intentando hacer funcionar el oscilador interno. ¿Cómo debe ser el conexionado del pin MCRL?

A ver si me estoy equivocando ahí

Saludos!
 
El encapsulado de 28 pines. Cristal no estoy usando, estoy intentando hacer funcionar el oscilador interno. ¿Cómo debe ser el conexionado del pin MCRL?

A ver si me estoy equivocando ahí

Saludos!
Para probarlo sin el botón de reset solo conectalo a VDD
Si quieres usar el Reset y lo tienes configurado con el BIT MCLRE = ON
Va con una R de 1K a 10K hacia VDD y un Push Button a hacia VSS
Aqui te dejo los Bits de configuración en un txt y pon principal atención al BIT PBADEN = OFF
y al BIT FOSC = INTOSC_HS
 

Adjuntos

  • fuses 18F2550.txt
    2.4 KB · Visitas: 49
Última edición:
Por fiiiiiiiiiiiiiiiiiiiin!

Ya he hecho que funcione. El problema estaba en los fuses como esperaba. Hasta ahora programaba con puerto serie y con Winpic800 y era solo marcar las casillas que se quisieran. Finalmente he conseguido meter los fuses en PBP y que funcione. Aquí un minitutorial de como hacerlo:

1.- Lo primero es ir a donde tengamos instalado PBP (normalmente en C:\PBP)
2.- Entramos en la carpeta en la que tengamos los archivos .INC (en PBP 3.0 es DEVICES)
3.- Buscamos en .INC de nuestro PIC y lo abrimos con bloc de notas
4.- Añadimos ; a las lineas entre CONFIG y ENDCONFIG:

Código:
#CONFIG
        ;__CONFIG    _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L
        ;__CONFIG    _CONFIG1H, _FOSC_HSPLL_HS_1H & _FCMEN_OFF_1H & _IESO_OFF_1H
        ;__CONFIG    _CONFIG2L, _PWRT_OFF_2L & _BOR_ON_2L & _BORV_3_2L & _VREGEN_ON_2L
        ;__CONFIG    _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H
        ;__CONFIG    _CONFIG3H, _CCP2MX_ON_3H & _PBADEN_OFF_3H & _LPT1OSC_OFF_3H & _MCLRE_ON_3H
        ;__CONFIG    _CONFIG4L, _STVREN_ON_4L & _LVP_OFF_4L & _XINST_OFF_4L
#ENDCONFIG
5.- Copiamos esas lineas a nuestro programa modificando lo que queramos y listo!

Aquí la prueba:


Gracias por ayudar!
 
Por fiiiiiiiiiiiiiiiiiiiin!

Ya he hecho que funcione. El problema estaba en los fuses como esperaba. Hasta ahora programaba con puerto serie y con Winpic800 y era solo marcar las casillas que se quisieran. Finalmente he conseguido meter los fuses en PBP y que funcione.
Gracias por ayudar!
Ok. Buen aporte ese mini tutorial, la verdad se me hizo mas facil entenderlo como lo haz explicado
que como lo habia visto anteriormente. Y gracias a ti por compartir tus ensayos.
No me quize quedar con la duda he hize un pequeño programa para comprobarlo
siguiendo tus instrucciones y ahora ya también puedo meter los FUSES dentro del editor PBP :)
Bien, púes aqui dejo el ensayo que realize, se trata del clasico Luces del Auto Fantastico.
Suerte y hasta luego. :apreton:
 

Adjuntos

  • 18F2550 LAF.rar
    25.4 KB · Visitas: 52
Atrás
Arriba