Buenas a todos, quisiera saber si alguien ha trabajado con retardos en MPLAB HI-TECH COMPILER C18. Cuando coloco un retado de 2000 mseg= 2 seg me genera un error en compilación. Alguien me puede orientar que solucion puedo hacer.
El error es el siguiente:
main.c:52: error: inline delay argument too large
y el código es el siguiente:
	
	
	
		
Agradecería su ayuda ...
				
			El error es el siguiente:
main.c:52: error: inline delay argument too large
y el código es el siguiente:
		Código:
	
	/*Configuración del Oscilador Interno del Pic para efectos del Delay*/
//Configuración del Oscilador Interno del Pic
#ifndef _XTAL_FREQ
 // Unless specified elsewhere, 4MHz system frequency is assumed
 #define _XTAL_FREQ 20000000
#endif
//Librería del Microcontrolador
#include <stdio.h>
#include <stdlib.h>
#include <pic18.h>
#include <pic18f4550.h>
#include <htc.h>
#include <hitech.h>
#include "lcd.h"
#include "configuracion.h"
#include "entorno.h"
#include "always.h"
#include "clk_freq.h"
#include "delay.h"
//Configuramos los FUSES
#pragma config CPUDIV=OSC1_PLL2, PLLDIV=6, USBDIV=2, IESO=ON, FOSC=HSPLL_HS, FCMEN=OFF, VREGEN=ON, BOR=SOFT, BORV=3, PWRT=OFF, WDT=OFF, CCP2MX=OFF, PBADEN=OFF, LPT1OSC= OFF, MCLRE=ON, DEBUG=OFF, STVREN=OFF, ICPRT=ON, XINST=OFF, LVP=OFF, CP0=OFF, CP1=OFF, CP2=OFF, CP3=OFF, CPD=OFF, CPB=OFF, WRT0=OFF, WRT1=OFF, WRT2=OFF, WRT3=OFF, WRTB=OFF, WRTC=OFF, WRTD=OFF, EBTR0=OFF, EBTR1=OFF, EBTR2=OFF, EBTR3=OFF, EBTRB=OFF
//Declaración de Variables*
int apagado, menu, posicion, temp;
//Declaracion de las Interrupciones del MCU
void interrupt isr(void){
    //Manejo de las Interrupciones
    //Ha ocurrido una Interrupcion Externa por el Puerto B2/INT2
    if (INTCON3bits.INT2IF==1){
        //Se ha presionado el pulsador de encender
        switch(apagado){
            case 0:
                //Esta Apagado el MCU
                lcd_clear();    //Limpiamos Pantalla
                lcd_init();     //Iniciamos el Mod. LCD
                menu=0;         //Inicializamos el Menu
                posicion=2;     //Establecemos la Posicion del Puntero
                entorno(menu,posicion);     //Cargamos la primera Pantalla
                __delay_ms(5000);           //Esperamos 5 segundos
                menu++;                     //Precargamos la siguiente Pantalla
                entorno(menu,posicion);     //Cargamos la siguiente Pantalla
                apagado=1;                  //Demostramos que el MCU se encuentra encendido
                INTCON3bits.INT2IF=0;       //Limpiamos la Bandera
                break;
            case 1:
                //Esta Encendido el MCU
                temp=menu;                  //Guardamos la Pantalla
                menu=2;                     //Cargamos la Pantalla
                posicion=2;                 //Cargamos la Posicion
                INTCON3bits.INT2IF=0;       //Limpiamos la Bandera
                entorno(menu,posicion);     //Cargamos la Pantalla asignada
                break;
        }
    }
}
//Declaración de Main
void main() {
    apagado=0;
    configuracion_inicial();
}
	Agradecería su ayuda ...
			
				Última edición por un moderador: