TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: micro_pepe en 30 de Abril de 2011, 17:04:58
-
Estoy probando un ejemplo de parpadeo de un LED, y el tiempo que introducen los delay es mucho más largo. Lo he simulado, y probado en real y dá el mismo resultado.
#define XTAL_FREQ 8MHZ // Cristal 8MHz
#define _XTAL_FREQ 8000000 // Cristal 8MHz
#include <htc.h>
#include "delay.c"
#include "pic18fxx2.h"
__CONFIG (1,HS & OSCSDIS);
__CONFIG (2,PWRTEN & WDTDIS & BOREN & BORV42);
__CONFIG (4,DEBUGDIS & LVPDIS & STVRDIS);
__CONFIG (5,UNPROTECT);
__CONFIG (7,SWDTDIS);
#define LED RD0
void main(void)
{
TRISD = 0b11111110;
GIE=0;
while(1){
LED=0;
DelayMs(250);
DelayMs(250);
DelayMs(250);
DelayMs(250);
LED=1;
DelayMs(250);
DelayMs(250);
DelayMs(250);
DelayMs(250);
}
}
Saludos.
-
No es un problema de HiTech, todo depende de como estén programadas las rutinas. En C no se puede tener un control preciso del tiempo.
Yo te recomiendo que busques en www.microchipc.com, que hay unas rutinas de delay exactas ya que están hechas en asm. El problema es que sólo se pueden usar delay inferiores a 255 us. Pero bastaría con hacer algún ciclo for con la llamada a las rutinas de x 250 us y ya estaría.
-
OK, encontré donde me dijiste las librerias, las adjunto por si alguien las quiere.