Tienda | Foros | Blogs | EN |
 

Parpadeo LED en C - PIC18F2550

Seguir
Hola, que tal?
Compre un PIC18F2550, instalé el MPLAB 8.88 previa instalación del CCS, también de Proteus. Relacioné MPLAB con CCS y Proteus y funciona bien. Ahora, para probar el PIC, me pues a programar el siguiente programa:

#include <18F2550.h>
#include <stdio.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,NOVREGEN,NOPBADEN
#use delay(clock=4000000) //reloj de 4Mhz

void main(void)
{
set_tris_b(0b01111111); //RB7 como salida, las demás como entrada

for(;
{
output_high(PIN_B7); //Pin RB7 = 1;
delay_ms(500); //Retardo 500ms
output_low(PIN_B7); //Pin RB7 = 0;
delay_ms(500); //Retardo 500ms

}
}


El caso es que simulo MPLAB con MPLAB SIM, y en vez de quedarse dando vueltas en el for(; (ya probé con while(true)) sigue de largo y no ejecuta más. Antes de eso, como es muy simple el programa, lo grave directo en le pic y no funcionó, luego hice esto. Lo simulo en proteus y solo queda prendido el led.

Yo sospecho que es un problema de configuración de #fuses.

¿Alguien me puede decir como se configuran estos #fuses?

muchas gracias.


3 Soluciones propuestas

sube un esquema de los pines del cristal y los capacitores
Gracias Miguel por la respuesta.
Ya encontré el problema. Lo que sucedía era que el compilador ccs, que era el que estaba usando, no reconoce delays.h ni las funciones delay_ms. El compilador no me arrojaba error, pero a la hora de ejecutarlo, no funcionaba como debía funcionar. Le instale el compilador c18 pero no se porque no me lo tomaba cuando lo configuraba. Así que tuve que desinstalar todo y volver a instalar, MPLAB IDE y el Compilador C18. Allí, no utilicé delay_ms, ya que no las reconoce, utilicé otra: Delay10KTCYx().

Saludos y espero que le sirva a alguien.
SOLUCIÓN ACEPTADA
Exacto, la ecuacion para establecer el tiempo es:

T=10KTCy(n)

T=10K(4/4000000)(n)