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: