TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: fersu en 30 de Noviembre de 2014, 05:26:02

Título: codigo muy sencillo en HI-TECH C con problemas
Publicado por: fersu en 30 de Noviembre de 2014, 05:26:02


Soy nuevo en esto. no me deis mucha bronca.
lo que quiero es tener un led encendido y que me de 2 pulsos a 0 de 50ms y que siga encendido hasta los siguientes 2 pulsos. de momento de forma automatica, despues ya lo controlare con un pulso High en una entrada

 tengo el siguiente código y al compilar me da problemas en la linea 8 lo compilo para un pic 16F84A

#include <htc.h>
#define_XTAL_FREQ 4000000
void main()
{
  TRISB=0X00;
  PORTB=0X00;
  while(1)
  { PORTB=0XFF;
     __delay_ms(1000);
     PORTB=0X00;
     __delay_ms(50);
    PORTB=0XFF;
    __delay_ms(50);
    PORTB=0X00;
    __delay_ms(50); 
  }
}

que estoy haciendo mal?
Título: Re: codigo muy sencillo en HI-TECH C con problemas
Publicado por: KILLERJC en 30 de Noviembre de 2014, 11:52:37
La unica que se me ocurre es que estes superando el limite de ciclos que puede manejar la funcion.
Tengo entendido que __delay_ms(x) funciona a traves de delay(x) o como se llame, este ultimo cuenta los ciclos de reloj en ves de tiempo, al llamar al de ms este calcula la cantidad de ciclos y usa la funcion delay(). Donde el maximo es de 197120 ciclos
 
Para tu caso serian 1 millon de ciclos. Podrias probar poner 10 delays de 100ms y ver si te envia el mismo error.

Y no entiendo por que el uso de Hi-tech c, mas cuando estas empezando te deberias ir directamente por XC8 (y aprender este y no volverte a aprender todo de nuevo) que vendria a ser la mejora de este, o lo que le da soporte microchip ahora. En XC8 el programa es igual, nomas que el inclide es xc.h