Autor Tema: Delay en HiTech impreciso.  (Leído 1847 veces)

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

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
Delay en HiTech impreciso.
« 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.

Código: [Seleccionar]
#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.
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Delay en HiTech impreciso.
« Respuesta #1 en: 30 de Abril de 2011, 17:27:40 »
  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.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
Re: Delay en HiTech impreciso.
« Respuesta #2 en: 01 de Mayo de 2011, 15:49:12 »
OK, encontré donde me dijiste las librerias, las adjunto por si alguien las quiere.
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡