Autor Tema: PIC 18f13k50 10 veces más lento SOLUCIONADO  (Leído 2499 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
PIC 18f13k50 10 veces más lento SOLUCIONADO
« en: 14 de Julio de 2009, 05:02:14 »
Hola compañeros:

Nunca me habia pasado esto con un pic, a ver si con un poco de suerte a alguno le ha ocurrido lo mismo. Utilizo un pic 18f13k50 que son para usb de low cost con el siguiente código:

Código: [Seleccionar]
#include <18F13K50.h>

#fuses HS,NOWDT,NOPROTECT,NOLVP

#define LEDV         PIN_C4

#define LED_ON  output_high
#define LED_OFF output_low

int i=0;

void main(void)
{  
   while(true)
   {
   LED_OFF(LEDV);
   delay_ms(1000);
i=0;
   LED_ON(LEDV);
   delay_ms(1000);
i=1;
   }
}

Resulta que el led se me apaga a los 10 seg y se enciende a los 10 seg y así sucesivamente, cuando tenia que ser cada 1 segundo, el cristal que uso es de 12Mhz y el esquemático es el siguiente

Pin1   -> 5V
Pin20 -> GND
Pin2 y Pin3 -> Clk 12Mhz
Pin4 -> 5V con una resistencia de 4k7 entre Pin4 y Pin1
Pin6 -> Led verde

Adjunto el diagrama de pines del pic y una foto en directo de esta, en un principio, una maravilla de pic.

Diagrama de pines 18f13k50

Dicho programa lo uso con un 18f45k20 y con un 18f4550 y funciona perfectamente, tambien hay que decir que esto lo hago con CCS a través de MPLab para programarlo con el PicKit3 y resulta que el único pic que no puedo debugear es el que falla aunque si lo puedo programar perfectamente. Se me olvidaba comentar que este programa funciona simulandolo en proteus con el pic 18f13k50, es decir, el que no funciona...

Si alguien tiene alguna idea de que puede estar pasando, o tiene una ligera idea del problema que lo mencione y lo pruebo in situ  :) :) :) ya que tengo todo montado a mi vera.

Un saludete y gracias.
« Última modificación: 15 de Julio de 2009, 06:46:11 por c4_esp_VR »

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: PIC 18f13k50 10 veces más lento
« Respuesta #1 en: 14 de Julio de 2009, 08:31:20 »
Tiene toda la pinta de que no configuras bien los fuses del oscilador... en concreto el PLL CPUDIV y USBDIV

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: PIC 18f13k50 10 veces más lento
« Respuesta #2 en: 14 de Julio de 2009, 08:40:22 »
Pero en este caso imagino que no haría falta ya que no voy a usar el USB para nada, de todas maneras lo intento.

Un saludete.

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: PIC 18f13k50 10 veces más lento
« Respuesta #3 en: 14 de Julio de 2009, 11:11:42 »
Efectivamente era por los fuses...pero ni el emulador de MPLab, ni el emulador de Proteus habian dicho absolutamente nada...aqui dejo los fuses que debería de utilizar para que funcionase.

Código: [Seleccionar]
#include <18F13K50.h>

#fuses HS, NOWDT, NOPROTECT, NOLVP, USBDIV1, CPUDIV1

#define LEDV         PIN_C4

#define LED_ON  output_high
#define LED_OFF output_low

#use delay(clock = 12000000)

int i=0;

void main(void)
{   
   while(true)
   {
    LED_OFF(LEDV);
    delay_ms(1000);
i=0;
    LED_ON(LEDV);
    delay_ms(1000);
i=1;
   }
}

Asi que por mi parte tema cerrado  :mrgreen: