Configuración de un pin en PORTA en el PIC18F452 alto: falla la compilación del código

3

Estoy intentando escribir el código que establecerá bit0 en PORTA en el máximo PIC18F452 si se cumple alguna de las condiciones en las declaraciones IF. Estoy usando el depurador MPLAB ICD2 y el Microchip C18 Toolsuite. El código es el siguiente:

#include <p18f452.h>

void main (void)
{
    // array containing vital sign values 
    unsigned char pulseR = 0x32;  // syntax error 
    unsigned char sysP = 0x64;
    unsigned char diasP = 0x26;

    // acceptable limits for vital signs according to relavant heath officials
    unsigned char pulseR_ULimit = 0xA0;
    unsigned char pulseR_LLimit = 0x28;

    unsigned char diastolic_ULimit = 0x5A;
    unsigned char diastolic_LLimit = 0x3C;

    unsigned char systolic_ULimit = 0x8C;
    unsigned char systolic_LLimit = 0x5A;

    TRISAbits.TRISA0 = 0;

    //Comparing obtained values with acceptable limits
    if (sysP < systolic_LLimit || sysP > systolic_ULimit)
    {
        PORTAbits.RA0 = 1;
    }
    else if (diasP < diastolic_LLimit || diasP > diastolic_ULimit ) 
    {
        PORTAbits.RA0 = 1 ;    
    }
    else if (pulseR < pulseR_LLimit || pulseR > pulseR_ULimit ) 
    {
        PORTAbits.RA0 = 1;
    }
    else                 
        PORTAbits.RA0 = 0;
}

Agregado :

El resultado de la compilación es el siguiente:

 Debug build of project 'C:\Users\Owner\Desktop\School Files\ECNG 3006 2011\Labs\Lab 3\Softare-Hardware Only\Lab3_3.mcp' started.
Preprocessor symbol '__DEBUG' is defined.
Sat Nov 19 13:56:03 2011
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Deleted file "C:\Users\Owner\Desktop\School Files\ECNG 3006 2011\Labs\Lab 3\Softare-Hardware Only\Lab3_3.mcs".
Clean: Done.
Couldn't locate build tool.  Check tool locations.
----------------------------------------------------------------------
Debug build of project 'C:\Users\Owner\Desktop\School Files\ECNG 3006 2011\Labs\Lab 3\Softare-Hardware Only\Lab3_3.mcp' failed.
Preprocessor symbol '__DEBUG' is defined.
Sat Nov 19 13:56:05 2011
----------------------------------------------------------------------
BUILD FAILED

¿Alguien puede ayudarme a solucionar este código?

    
pregunta D Brown

2 respuestas

1

Para establecer una salida, debe usar LATAbits.RA0 = x en lugar de PORTAbits.RA0 = x.

También, intente agregar algunos corchetes. Prueba esto:

#include <p18f452.h>

void main (void)
{
    // array containing vital sign values 
    unsigned char pulseR = 0x32;  // syntax error 
    unsigned char sysP = 0x64;
    unsigned char diasP = 0x26;

    // acceptable limits for vital signs according to relavant heath officials
    unsigned char pulseR_ULimit = 0xA0;
    unsigned char pulseR_LLimit = 0x28;

    unsigned char diastolic_ULimit = 0x5A;
    unsigned char diastolic_LLimit = 0x3C;

    unsigned char systolic_ULimit = 0x8C;
    unsigned char systolic_LLimit = 0x5A;

    TRISAbits.TRISA0 = 0;

    //Comparing obtained values with acceptable limits
    if ((sysP < systolic_LLimit)||(sysP > systolic_ULimit))
    {
        LATAbits.RA0 = 1;
    }
    else if ((diasP < diastolic_LLimit)||(diasP > diastolic_ULimit)) 
    {
        LATAbits.RA0 = 1 ;    
    }
    else if ((pulseR < pulseR_LLimit)||(pulseR > pulseR_ULimit)) 
    {
        LATAbits.RA0 = 1;
    }
    else 
    {                
        LATAbits.RA0 = 0;
    }
}
    
respondido por el Rok Jarc
0

Coloque TRISAbits.RA0 = 0; después de la declaración de sus variables (deben declararse al inicio de las rutinas)
Así que justo después de unsigned char systolic_LLimit = 0x5A;
Debe compilarse bien entonces.

EDITAR: verifique las opciones de compilación de su Proyecto (Proyecto- > Opciones de compilación- > Proyecto) están configuradas para el directorio de inclusión correcto. Aquí hay un clip de mi configuración para el último compilador C18 (es posible que tenga que buscar en su unidad C para la suya si está instalado en un lugar diferente o usando una versión anterior)

EDIT2:sí,elarchivodeencabezadoqueestáutilizandoeselproblema.SiobservalaestructuradeTRISA,puedeverquelosbitssedenominanTRISAx:

externvolatilenearunsignedcharTRISA;externvolatilenearstruct{unsignedTRISA0:1;unsignedTRISA1:1;unsignedTRISA2:1;unsignedTRISA3:1;unsignedTRISA4:1;unsignedTRISA5:1;unsignedTRISA6:1;}TRISAbits;

Entonces,silocambiasaTRISAbits.TRISA0=0;deberíafuncionar.Delmismomodo,esposiblequetengaquecambiarotrascosasparacumplirconelarchivodeencabezado.
Onocambienadaysimplementecomienceausarelúltimoarchivodeencabezadodelosmicrochips(debeestareneldirectoriodelcompiladorllamado\h(verlaimagendearriba)

EDIT3-"no se puede encontrar la herramienta de compilación"
Esto significa que MPLAB no puede encontrar el ejecutable del compilador. Debe ir a "Proyecto - > Establecer ubicaciones de herramientas de idioma" y configurar los ejecutables C18 Toolsuite correctamente.
Consulte este hilo para obtener información sobre el tema. Este es un fragmento de cómo se ve en mi computadora portátil (tenga en cuenta que la ruta / archivo puede ser diferente en su computadora dependiendo de la versión que esté usando):

    
respondido por el Oli Glaser

Lea otras preguntas en las etiquetas