Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

05/08/2012 #1


MPLAB c18 no genera .hex
Hola amigos soy nuevo en el mundo de programacion de PICs uso MPLAB IDE y C18 para crear mis programas en C lo que sucede es que cuando le doy Build All a mi codigo me aparece esto y no Build succeeded que es lo que deberia aparecer cuando ya se ha generado el .hex

este es mi codigo
Código:
/*Contador ascendente, el limite esta dado por dos digitos, entrada por teclado y salida por lcd. 
Puerto B para el LCD y puerto D para el teclado*/
/******************************librerias******************************/
#include<p18f4550.h> //libreria del pic
#include<xlcd.h> //libreria lcd
#include<delays.h> //libreria de retardos
/******************************Funciones******************************/
void DelayFor18TCY(){ //retardo de 20uS establecido por el lcd
    Delay10TCYx(2); //retardo por libreria
}
void DelayPORXLCD(){ //retardo de 15mS establecido por el lcd
    Delay1KTCYx(15); //retardo por libreria --> 1000*15*4/4000000=15mS
}
void DelayXLCD(){ //retardo de 5mS establecido por el lcd
    Delay1KTCYx(5); //retardo por libreria
}
/***********************Declaracion de funciones**********************/
int teclado(void); //funcion teclado retorna un entero , sin argumentos de entrada
void ON(void); //funcion ON sin retorno, sin argumentos de entrada, sirve para habilitar el teclado
void main(){ //funcion principal
    int cont,d,u,a=0; //cont-->contador, d-->decenas, c-->centenas, a-->auxiliar
    ADCON1=15; //conver entradas/salidas analogas a digitales
    TRISD=0x0F; //configuracion del puerto D para el teclado 0b00001111 4 entradas(bits mas significativos) 4 salidas(bits menos signitficativos), nota: el puerto B para el LCD no se necesita configurar ya que la libreria de este tiene predefinido el puerto B.
    ON(); //llamado a funcion habilita el uso del LCD
    OpenXLCD(FOUR_BIT & LINES_5x7); //iniciliazacion del LCD a 4 bits y matriz de caracteres de 5x7
    PutrsXLCD("Oprima 2 digitos"); // visualiza "Oprima 2 digitos"
    d=teclado();
    SetDDRamAddr(0x45);
    WriteDataXLCD(0x30+d);
    Delay10KTCYx(150);
    u=teclado();
    WriteDataXLCD(0x30+u);
    Delay10KTCYx(150);
    a= d*10 + u;
    WritecmdXLCD(1);
    PutrsXLCD("Valor de conteo");
    for(cont=0;cont<a;cont++){
        SetDDRamAdd(0x45);
        d=cont/10;//?
        u=cont%10;//?
        WriteDataXLCD(0x30+d);
        WriteDataXLCD(0x30+u);
        Delay10KTCYx(100);
    }
}
/***********************Definicion de funciones***********************/
int teclado(){ //definicion de funcion teclado
    while(1){ //ciclo infinito
        PORTD=0x10; //0b00010000
        if(PORTD==0x11)     return 0; //retorna 0 //0x11 depende de la conexion del teclado al pic
        else if(PORTD=0x12) return 1; //retorna 1 //0x12 depende de la conexion del teclado al pic
        else if(PORTD=0x14) return 2; //retorna 2 //0x14 depende de la conexion del teclado al pic
        else if(PORTD=0x18) return 3; //retorna 3 //0x18 depende de la conexion del teclado al pic
        PORTD=0x20; //0b00100000
        if(PORTD==0x21)     return 4; //retorna 4 //0x21 depende de la conexion del teclado al pic
        else if(PORTD=0x22) return 5; //retorna 5 //0x22 depende de la conexion del teclado al pic
        else if(PORTD=0x24) return 6; //retorna 6 //0x24 depende de la conexion del teclado al pic
        else if(PORTD=0x28) return 7; //retorna 7 //0x28 depende de la conexion del teclado al pic
        PORTD=0x40; //0b01000000
        if(PORTD==0x41)     return 8; //retorna 8 //0x41 depende de la conexion del teclado al pic
        else if(PORTD=0x42) return 9; //retorna 9 //0x42 depende de la conexion del teclado al pic
    }
}
void ON(){ //definicion de funcion ON
    while(1){ //ciclo infinito
        PORTD=0x80; //se pone 1 en la columna de la tecla F(ON)
        if(PORTD==0x88)        return; //si hay 1 en la columna de la tecla F(ON) es porque se oprimio entonces retorna al flujo del programa principal
    }
}
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.