MPLABX中的C头包含问题

MPLABX中的C头包含问题,c,header,include,C,Header,Include,我在MPLABX C项目中包含我的库时遇到问题。此库使用另一个库 编译项目时,出现了一个错误: ../src/NGSC.h:169:31: error: unknown type name 'ADSConstant' void NGSCSetTestMode(uint8_t, ADSConstant, ADSConstant); 这是我的NGSC.h #ifndef NGSC_H /* Guard against multiple inclusion */ #define NGSC_H

我在MPLABX C项目中包含我的库时遇到问题。此库使用另一个库

编译项目时,出现了一个错误:

../src/NGSC.h:169:31: error: unknown type name 'ADSConstant'
 void NGSCSetTestMode(uint8_t, ADSConstant, ADSConstant);
这是我的
NGSC.h

#ifndef NGSC_H    /* Guard against multiple inclusion */
#define NGSC_H

#include "ads1299.h"

/*******************************************************************************
 * TYPES DEFINITION
 ******************************************************************************/
typedef enum {
    NGSCCheckHeadingState,
    NGSCCheckStartOfPacketState,
    NGSCDecodeCommandState,
    NGSCChannelMaskState,
    NGSCCheckEndOfPacketState
} NGSCCommandDecoderState;

typedef struct {
    uint8_t command;
    uint8_t channelMask;
    bool valid;
} NGSCReceivedCommand;

typedef struct {
    uint8_t data[PACKET_MAX_DATA_LENGTH];
    uint8_t *header;
    double *rawData;
    int size;
    bool valid;
} NGSCTransmittingDataPacket;

//------- User Commands --------
typedef enum { 
    NGSCCommandCheckSPIComunication     = 0x00,
    NGSCCommandStartConversions         = 0x10,
    NGSCCommandStopConversions          = 0x20,
    NGSCCommandSetChannelOff            = 0x30,
    NGSCCommandSetNormalMode            = 0x40,
    NGSCCommandSetTestModeA1F1          = 0x51,
    NGSCCommandSetTestModeA1F2          = 0x52,
    NGSCCommandSetTestModeA2F1          = 0x53,
    NGSCCommandSetTestModeA2F2          = 0x54,
    NGSCCommandSetTestModeA1DC          = 0x55,
    NGSCCommandSetTestModeA2DC          = 0x56,
    NGSCCommandSetMVDDMode              = 0x57,
    NGSCCommandSetShortMode             = 0x60,
    NGSCCommandSetBiasMode              = 0x70,
    NGSCCommandSetDataRate250SPS        = 0x81,
    NGSCCommandSetDataRate500SPS        = 0x82,
    NGSCCommandSetDataRate1KSPS         = 0x83,
    NGSCCommandSetDataRate2KSPS         = 0x84,
    NGSCCommandSetDataRate4KSPS         = 0x85,
    NGSCCommandSetDataRate8KSPS         = 0x86,
    NGSCCommandSetDataRate16KSPS        = 0x87,
    NGSCCommandSetGain1                 = 0x91,
    NGSCCommandSetGain2                 = 0x92,
    NGSCCommandSetGain4                 = 0x93,
    NGSCCommandSetGain6                 = 0x94,
    NGSCCommandSetGain8                 = 0x95,
    NGSCCommandSetGain12                = 0x96,
    NGSCCommandSetGain24                = 0x97,
    NGSCCommandSetSRB1On                = 0xA0,
    NGSCCommandSetSRB1Off               = 0xA1,
    NGSCCommandFilterNotch50On          = 0xB0,
    NGSCCommandFilterNotch50Off         = 0xB1,
    NGSCCommandFilterCombNotch50On      = 0xB2,
    NGSCCommandFilterCombNotch50Off     = 0xB3,
    NGSCCommandFilterNotch0On           = 0xB4,
    NGSCCommandFilterNotch0Off          = 0xB5,
    NGSCCommandPrintSettings            = 0xC0,
    NGSCCommandReset                    = 0xD0
} NGSCCommand;

/*******************************************************************************
 * FUNCTIONS PROTOTYPE DECLARATION
 ******************************************************************************/

void NGSCInit(void);
void NGSCSetup(void);
void NGSCEnvironmentSetup(void);
uint8_t NGSCGetId(void);
void NGSCReset(void);
void NGSCReadADSData(void);
void NGSCDeactivateChannel(uint8_t);
void NGSCSetNormalMode(uint8_t);
void NGSCSetTestMode(uint8_t, ADSConstant, ADSConstant);
void NGSCSetMVDDtMode(uint8_t);
void NGSCSetShortMode(uint8_t);
void NGSCSetBiasMode(uint8_t);
void NGSCSetDataRate(ADSConstant);
void NGSCSetGain(uint8_t, ADSConstant);
void NGSCSetSRB1(ADSConstant);
void NGSCPrintSettings(void);
void NGSCCommandDecoder(uint8_t);
void NGSCCommandHandler(void);
void NGSCProcessData(void);
void NGSCGetDataPacket(NGSCTransmittingDataPacket *);

#endif /* NGSC_H */
这里是ads1299.h

#ifndef __ADS1299_H__
#define __ADS1299_H__

#include <xc.h>
#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>
#include "app.h"

/** SPI Commands  *************************************************************/ 
typedef enum {
    //-------------------------- System Commands -------------------------------
    ADSCommandWAKEUP    = 0x02,
    ADSCommandSTANDBY   = 0x04,
    ADSCommandRESET     = 0x06,
    ADSCommandSTART     = 0x08,
    ADSCommandSTOP      = 0x0A,
    //------------------------- Read Mode Commands -----------------------------
    ADSCommandRDATAC    = 0x10,
    ADSCommandSDATAC    = 0x11,
    ADSCommandRDATA     = 0x12,
    //-------------------- Register Read/Write Commands ------------------------
    ADSCommandRREG      = 0x20,     // 0b001rrrrr
    ADSCommandWREG      = 0x40      // 0b010rrrrr
} ADSCommand;

/** Register Addresses ********************************************************/
typedef enum {
    ADSRegisterID           = 0x00,
    ADSRegisterCONFIG1      = 0x01,
    ADSRegisterCONFIG2      = 0x02,
    ADSRegisterCONFIG3      = 0x03,
    ADSRegisterLOFF         = 0x04,
    ADSRegisterCH1SET       = 0x05,
    ADSRegisterCH2SET       = 0x06,
    ADSRegisterCH3SET       = 0x07,
    ADSRegisterCH4SET       = 0x08,
    ADSRegisterCH5SET       = 0x09,
    ADSRegisterCH6SET       = 0x0A,
    ADSRegisterCH7SET       = 0x0B,
    ADSRegisterCH8SET       = 0x0C,
    ADSRegisterBIAS_SENSP   = 0x0D,
    ADSRegisterBIAS_SENSN   = 0x0E,
    ADSRegisterLOFF_SENSP   = 0x0F,
    ADSRegisterLOFF_SENSN   = 0x10,
    ADSRegisterLOFF_FLIP    = 0x11,
    ADSRegisterLOFF_STATP   = 0x12,
    ADSRegisterLOFF_STATN   = 0x13,
    ADSRegisterGPIO         = 0x14,
    ADSRegisterMISC1        = 0x15,
    ADSRegisterMISC2        = 0x16,     // Not used
    ADSRegisterCONFIG4      = 0x17
} ADSRegister;

/** ADS1299 Register Constants ************************************************/
typedef enum {
    //---------------------------- CONFIG1 -------------------------------------
    ADSConstantDaisyOn                      = 0x90,     // (default)
    ADSConstantDaisyOff                     = 0xD0,
    ADSConstantClockOutOff                  = 0x90,     // (default)
    ADSConstantClockOutOn                   = 0xB0,
    ADSConstantDataRate16KSPS               = 0x90,
    ADSConstantDataRate8KSPS                = 0x91,
    ADSConstantDataRate4KSPS                = 0x92,
    ADSConstantDataRate2KSPS                = 0x93,
    ADSConstantDataRate1KSPS                = 0x94,
    ADSConstantDataRate500SPS               = 0x95,
    ADSConstantDataRate250SPS               = 0x96,     // (default)
    //---------------------------- CONFIG2 -------------------------------------
    ADSConstantTestSignalExternal           = 0xC0,     // Test signals are driven externally (default)
    ADSConstantTestSignalInternal           = 0xD0,     // Test signals are generated internally
    ADSConstantCalibrationAmplitudeSmall    = 0x00,     // Calibration signal amplitude: 1 * (VREFP - VREFN) / 2.4 mV (default)
    ADSConstantCalibrationAmplitudeLarge    = 0x04,     // Calibration signal amplitude: 2 * (VREFP - VREFN) / 2.4 mV
    ADSConstantCalibrationFrequencyLow      = 0x00,     // Calibration signal frequency: Pulsed at fCLK / 2^21 (default)
    ADSConstantCalibrationFrequencyHigh     = 0x01,     // Calibration signal frequency: Pulsed at fCLK / 2^20
    ADSConstantCalibrationFrequencyDC       = 0x03,     // Calibration signal frequency: DC
    //---------------------------- CONFIG3 -------------------------------------
    ADSConstantReferenceBufferOff           = 0x60,     // Power-down internal reference buffer (default)
    ADSConstantReferenceBufferOn            = 0xE0,     // Internal reference buffer enabled
    ADSConstantBiasMeasurementDisabled      = 0x60,     // BIASIN signal disconnected (default)
    ADSConstantBiasMeasurementEnabled       = 0x70,     // BIASIN signal is routed to the channel that has the MUX_Setting 010 (VREF)
    ADSConstantBiasReferenceExternal        = 0x60,     // BIASREF signal fed externally (default)
    ADSConstantBiasReferenceInternal        = 0x68,     // BIASREF signal (AVDD - AVSS) / 2 generated internally
    ADSConstantBiasBufferOff                = 0x60,     // BIAS buffer is powered down (default)
    ADSConstantBiasBufferOn                 = 0x64,     // BIAS buffer is enabled
    ADSConstantBiasLeadOffSenseDisabled     = 0x60,     // BIAS sense is disabled (default)
    ADSConstantBiasLeadOffSenseEnabled      = 0x62,     // BIAS sense is enabled
    //----------------------------- LOFF ---------------------------------------
    ADSConstantLeadOffComparatorThreshold95 = 0x00,     // Positive side: 95%, negative side: 5% (default)
    ADSConstantLeadOffComparatorThreshold92 = 0x20,     // Positive side: 92.5%, negative side: 7.5%
    ADSConstantLeadOffComparatorThreshold90 = 0x40,     // Positive side: 90%, negative side: 10%
    ADSConstantLeadOffComparatorThreshold87 = 0x60,     // Positive side: 87.5%, negative side: 12.5%
    ADSConstantLeadOffComparatorThreshold85 = 0x80,     // Positive side: 85%, negative side: 15%
    ADSConstantLeadOffComparatorThreshold80 = 0xA0,     // Positive side: 80%, negative side: 20%
    ADSConstantLeadOffComparatorThreshold75 = 0xC0,     // Positive side: 75%, negative side: 25%
    ADSConstantLeadOffComparatorThreshold70 = 0xE0,     // Positive side: 70%, negative side: 30%
    ADSConstantLeadOffCurrent6nA            = 0x00,     // Lead off current: 6 nA (default)
    ADSConstantLeadOffCurrent24nA           = 0x02,     // Lead off current: 24 nA
    ADSConstantLeadOffCurrent6uA            = 0x04,     // Lead off current: 6 uA
    ADSConstantLeadOffCurrent24uA           = 0x06,     // Lead off current: 24 uA
    ADSConstantLeadOffFrequencyDC           = 0x00,     // DC lead-off detection (default)
    ADSConstantLeadOffFrequency7Hz8         = 0x01,     // AC lead-off detection at 7.8 Hz (SYS_CLK / 2^18)
    ADSConstantLeadOffFrequency31Hz2        = 0x02,     // AC lead-off detection at 31.2 Hz (SYS_CLK / 2^16)
    ADSConstantLeadOffFrequencyDataRate4    = 0x03,     // AC lead-off detection at fDR / 4
    //------------------------------ CHnSET ------------------------------------
    ADSConstantChannelOn                    = 0x00,     // Normal operation (default)
    ADSConstantChannelOff                   = 0x80,     // Channel power-down
    ADSConstantGain1                        = 0x00, 
    ADSConstantGain2                        = 0x10, 
    ADSConstantGain4                        = 0x20, 
    ADSConstantGain6                        = 0x30, 
    ADSConstantGain8                        = 0x40, 
    ADSConstantGain12                       = 0x50, 
    ADSConstantGain24                       = 0x60,     // (default)
    ADSConstantSRB2Off                      = 0x00,     // (default)
    ADSConstantSRB2On                       = 0x08, 
    ADSConstantMuxNormal                    = 0x00,     // Normal electrode input (default)
    ADSConstantMuxShortedInputs             = 0x01,     // Input shorted (for offset or noise measurements)
    ADSConstantMuxBiasMeasurement           = 0x02,     // Used in conjunction with BIAS_MEAS bit (BiasMeasurementEnabled) in CONFIG3 for BIAS measurements
    ADSConstantMuxVDDMeasurement            = 0x03,     // MVDD for supply measurement  // For channels 1,2,5,6,7,8 (MVDDP - MVDDN) = [0.5 * (AVDD + AVSS)]
                                                                                        // For channels 3,4 (MVDDP - MVDDN) = DVDD / 4
                                                                                        // Note: set gain = 1 while mesuring supplies to avoid saturation
    ADSConstantMuxTemperatureMeasurement    = 0x04,     // Temperature sensor
    ADSConstantMuxTestSignal                = 0x05,     // Test signal
    ADSConstantMuxBiasOnPostiveElectrode    = 0x06,     // BIAS_DRP (positive electrode is the driver)
    ADSConstantMuxBiasOnNegativeElectrode   = 0x07,     // BIAS_DRN (negative electrode is the driver)
    //----------------------- BIAS/LOFF_SENSP/SENSN ----------------------------
    ADSConstantSenseNone                    = 0x00,
    ADSConstantSenseAll                     = 0xFF,
    ADSConstantSense1                       = 0x01,
    ADSConstantSense2                       = 0x02,
    ADSConstantSense3                       = 0x04,
    ADSConstantSense4                       = 0x08,
    ADSConstantSense5                       = 0x10,
    ADSConstantSense6                       = 0x20,
    ADSConstantSense7                       = 0x40,
    ADSConstantSense8                       = 0x80,
    //----------------------------- LOFF_FLIP ----------------------------------
    ADSConstantFlipNone                     = 0x00,
    ADSConstantFlipAll                      = 0xFF,
    ADSConstantFlip1                        = 0x01,
    ADSConstantFlip2                        = 0x02,
    ADSConstantFlip3                        = 0x04,
    ADSConstantFlip4                        = 0x08,
    ADSConstantFlip5                        = 0x10,
    ADSConstantFlip6                        = 0x20,
    ADSConstantFlip7                        = 0x40,
    ADSConstantFlip8                        = 0x80,
    //------------------------------- MISC1 ------------------------------------
    ADSConstantSRB1Off                      = 0x00,     // (default)
    ADSConstantSRB1On                       = 0x20,
    //------------------------------ CONFIG4 -----------------------------------
    ADSConstantContinuousConversionMode     = 0x00,     // Continuous conversion mode (default)
    ADSConstantSingleShotMode               = 0x08,     // Single-shot mode
    ADSConstantLeadOffComparatorOff         = 0x00,     // Lead-off comparators disabled (default)
    ADSConstantLeadOffComparatorOn          = 0x02      // Lead-off comparators enabled
} ADSConstant;

typedef enum {
    ADSMaskId   = 0x0F,
    ADSMaskGain = 0x70
} ADSMask;

/** Function Prototypes *******************************************************/
void ADS_CHIP_SELECT_Assert(void);
void ADS_CHIP_SELECT_Deassert(void);
uint8_t TransferByteOverSPI2(uint8_t);
void ADSInit(void);
void ADSWakeup(void);
void ADSStandby(void);
void ADSReset(void);
void ADSStartConversions(void);
void ADSStopConversions(void);
void ADSStartReadDataContinuousMode(void);
void ADSStopReadDataContinuousMode(void);
void ADSReadData(void);
uint8_t ADSReadRegister(ADSRegister);
void ADSWriteRegister(ADSRegister, uint8_t);
void ADSPrintAllRegisters(void);

#endif  /* __ADS1299_H__ */
\ifndef\uuuADS1299\uH__
#定义ADS1299__
#包括
#包括
#包括
#包括
#包括“app.h”
/**SPI命令************************************************************************************************/
类型定义枚举{
//--------------------------系统命令-------------------------------
ADSCommandWAKEUP=0x02,
ADSCommandSTANDBY=0x04,
ADSCommandRESET=0x06,
ADSCommandSTART=0x08,
ADSCommandSTOP=0x0A,
//-------------------------读取模式命令-----------------------------
ADSCommandRDATAC=0x10,
ADSCommandSDATAC=0x11,
ADSCommandRDATA=0x12,
//--------------------寄存器读/写命令------------------------
ADSCommandRREG=0x20,//0B001RRR
ADSCommandWREG=0x40//0B010RRR
}ADS命令;
/**注册地址********************************************************/
类型定义枚举{
ADSRegisterID=0x00,
ADSRegisterCONFIG1=0x01,
ADSRegisterCONFIG2=0x02,
ADSRegisterCONFIG3=0x03,
ADSRegisterOff=0x04,
ADSRegisterCH1SET=0x05,
ADSRegisterCH2SET=0x06,
ADSRegisterCH3SET=0x07,
ADSRegisterCH4SET=0x08,
ADSRegisterCH5SET=0x09,
ADSRegisterCH6SET=0x0A,
ADSRegisterCH7SET=0x0B,
ADSRegisterCH8SET=0x0C,
ADSRegisterBIAS_SENSP=0x0D,
ADSRegisterBIAS_SENSN=0x0E,
ADSRegisterOff_SENSP=0x0F,
ADSRegisterOff_SENSN=0x10,
ADSRegisterOff_FLIP=0x11,
ADSRegisterOff_STATP=0x12,
ADSRegisterOff_STATN=0x13,
ADSRegisterGPIO=0x14,
ADSRegisterMsc1=0x15,
ADSRegisterMsc2=0x16,//未使用
ADSRegisterCONFIG4=0x17
}ADS寄存器;
/**ADS1299寄存器常数************************************************/
类型定义枚举{
//----------------------------配置1-------------------------------------
ADSConstantDaiYon=0x90,//(默认)
ADSConstantDaiyoff=0xD0,
ADSConstantClockOutOff=0x90,//(默认)
ADSConstantClockOutOn=0xB0,
ADSConstantDataRate16KSPS=0x90,
ADSConstantData 8ksps=0x91,
ADSConstantDataRate4KSPS=0x92,
ADSConstantDataRate2KSPS=0x93,
ADSConstantDataRate1KSPS=0x94,
ADSConstantDataRate500SPS=0x95,
ADSConstantDataRate250SPS=0x96,//(默认)
//----------------------------配置2-------------------------------------
ADSCONSTANTETSTSIGNALEXTERNAL=0xC0,//外部驱动测试信号(默认)
ADSConstantTestSignalInternal=0xD0,//内部生成测试信号
ADSConstantCalibrationAmplitudeSmall=0x00,//校准信号振幅:1*(VREFP-VREFN)/2.4 mV(默认值)
ADSConstantCalibrationAmplitudeLarge=0x04,//校准信号振幅:2*(VREFP-VREFN)/2.4 mV
ADSConstantCalibrationFrequencyLow=0x00,//校准信号频率:在fCLK/2^21处脉冲(默认)
ADSConstantCalibrationFrequencyHigh=0x01,//校准信号频率:在fCLK/2^20处脉冲
ADSConstantCalibrationFrequencyDC=0x03,//校准信号频率:DC
//----------------------------配置3-------------------------------------
ADSConstantReferenceBufferOff=0x60,//关闭内部引用缓冲区(默认)
ADSConstantReferenceBufferOn=0xE0,//已启用内部引用缓冲区
ADSConstantBiasMeasurementDisabled=0x60,//信号断开时的偏差(默认)
ADSConstantBiasMeasurementEnabled=0x70,//BIASIN信号被路由到具有MUX_设置010(VREF)的信道
ADSConstantBiasReferenceExternal=0x60,//外部馈送的BIASREF信号(默认)
ADSConstantBiasReferenceInternal=0x68,//内部生成的BIASREF信号(AVDD-AVSS)/2
ADSConstantBiasBufferOff=0x60,//偏置缓冲区断电(默认)
ADSConstantBiasBufferOn=0x64,//已启用偏置缓冲区
ADSConstantBiasLeadOffSenseDisabled=0x60,//禁用偏差检测(默认)
ADSConstantBiasLeadOffSenseEnabled=0x62,//偏置检测已启用
//-----------------------------洛夫---------------------------------------
adsconstantleadoffcomparatorhreshold95=0x00,//正侧:95%,负侧:5%(默认)
adsconstantleadoffcomparatorhreshold92=0x20,//正侧:92.5%,负侧:7.5%
adsconstantleadoffcomparatorhreshold90=0x40,//正侧:90%,负侧:10%
adsconstantleadoffcomparatorhreshold87=0x60,//正侧:87.5%,负侧:12.5%
adsconstantleadoffcomparatorhreshold85=0x80,//正极:85%,负极:15%
adsconstantleadoffcomparatorhreshold80=0xA0,//正极:80%,负极:20%
adsconstantleadoffcomparatorhreshold75=0xC0,//正侧:75%,负侧:25%
adsconstantleadoffcomparatorhreshold70=0xE0,//正侧:70%,负侧:30%
ADSConstantLeadOffCurrent6nA=0x00,//引出电流:6na(默认值)
ADSConstantLendOffCurrent24NA=0x02,//引出电流:24NA
ADSConstantLendOffCurrent6UA=0x04,//引出电流:6UA
AdsConstantLedOffCurrent24UA