Autor Tema: codigo muy sencillo en HI-TECH C con problemas  (Leído 1446 veces)

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

Desconectado fersu

  • PIC10
  • *
  • Mensajes: 4
codigo muy sencillo en HI-TECH C con problemas
« 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?

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: codigo muy sencillo en HI-TECH C con problemas
« Respuesta #1 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