Autor Tema: Problema con DelayMs en hi-tech  (Leído 2188 veces)

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

Desconectado BACHAB

  • PIC10
  • *
  • Mensajes: 4
Problema con DelayMs en hi-tech
« en: 14 de Agosto de 2011, 20:21:56 »
Buenas, tengo un problema con el DelayMs, pues tarda la mitad de lo que deberia tardar.
Es un 16F887 con el oscilador interno a 4Mhz, y básicamente el código que pongo es este:
#include <delay.c> //este incluye a su vez a delay.h
#define    XTAL_FREQ    4MHZ
.
.
.
DelayMs(1000);
//
La unica forma de que ande bien, es que le diga q el PIC esta andando a 8Mhz (q es mentira).
Espero que ya hayan visto algun problema similar.
Saludos.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problema con DelayMs en hi-tech
« Respuesta #1 en: 14 de Agosto de 2011, 20:42:04 »
Y como has configurado el oscilador interno? Los fuses y el registro OSCCON? Aunque por default es 4MHz  :tongue:
No contesto mensajes privados, las consultas en el foro

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Problema con DelayMs en hi-tech
« Respuesta #2 en: 15 de Agosto de 2011, 11:01:47 »
Por lo que veo en el archivo delay.h, el parámetro de la función DelayMs es del tipo unsigned char por lo tanto sólo debería poder tomar valores hasta 255.

¿Qué ocurre si probás de encadenar por ejemplo 4 delay de 250ms cada uno, llegas al valor aproximado de 1s?
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado BACHAB

  • PIC10
  • *
  • Mensajes: 4
Re: Problema con DelayMs en hi-tech
« Respuesta #3 en: 15 de Agosto de 2011, 22:01:41 »
1_Si, el default es 4MHz y así lo confirma el OSSCON
2_Uuhhh tenes razon q gil q soy, aunque debería durar un 1/4  de segundo, pero como lo medi "a ojo" debo haberme equivocado.
Pense en hacer eso, pero cuando me disponia a hacerlo note otros problemas y me distraje con eso, voy a hacerlo y tendré q buscar o hacerme una función de delay mas copada.
Muchas gracias por las respuestas!


 

anything