Autor Tema: Problema con delay_ms()  (Leído 1507 veces)

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

Desconectado xufoo

  • PIC10
  • *
  • Mensajes: 5
Problema con delay_ms()
« en: 11 de Enero de 2011, 21:32:20 »
Hola a todos! Soy nuevo en el foro, y llevo ya un tiempo trasteando con PICs, pero a nivel de ensamblador, y hace poco que he empezado con CCS.

Entrando en materia...

#include <18F14k50.h>
#fuses INTRC_IO,CPUDIV1,NOWDT,NOPROTECT,NOLVP
#use delay(clock=8000000)
void main() {
   set_tris_c(0xF0);

   while(1){
      output_high(PIN_C5);
      delay_ms(1000);
      output_low(PIN_C5);
      delay_ms(1000);
   }
}

  El código no hace más que encender y apagar un led, el problema es la temporización: si en el #use delay() uso cualquier valor, el led está
un segundo apagado y uno encendido; pero si pongo 8MHz, únicamente está medio segundo en cada estado  :? He mirado en el hilo de bugs
pero no he encontrado nada...
  Lo único que modifico es la tercera línea; estoy usando la versión 4.108 de CCS con un pic18f14k50.

  Un saludo!!

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Problema con delay_ms()
« Respuesta #1 en: 12 de Enero de 2011, 02:58:07 »
Ese micro admite un amplio rango de frecuencias para su oscilador interno, deberías establecer la que quieres utilizar al principio de tu main, utilizando setup_oscillator()

Desconectado xufoo

  • PIC10
  • *
  • Mensajes: 5
Re: Problema con delay_ms()
« Respuesta #2 en: 12 de Enero de 2011, 06:58:27 »
Sí, he probado eso también pero con el mismo resultado: para cualquier frecuencia genera los retardos correctamente, excepto para la de 8MHz

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Problema con delay_ms()
« Respuesta #3 en: 12 de Enero de 2011, 08:39:29 »
Porque no miras en la lista de bugs oficial de CCS ??   :lol: :lol: :lol:

Aqui esta!!  :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado xufoo

  • PIC10
  • *
  • Mensajes: 5
Re: Problema con delay_ms()
« Respuesta #4 en: 13 de Enero de 2011, 17:27:07 »
  Ya he encontrado el problema...me sobra el #fuses CPUDIV1 (que pensaba que sería equivalente a no dividir, pero ese es NOCPUDIV  :oops:), y como la frecuencia de 8MHz es la que coge en caso de usar el módulo CPUDIV, es la única con la que me daba el error...por si le sirve a alguien!
  De todas formas gracias por la ayuda!