TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: BACHAB 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.
-
Y como has configurado el oscilador interno? Los fuses y el registro OSCCON? Aunque por default es 4MHz :tongue:
-
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?
-
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!