the header file...
#ifndef __ADS1256_H
#define __ADS1256_H// define the port pins used for the ADS1256
#define N_DRDY 0x04
#define N_DRDY_IN P2IN
#define N_DRDY_DIR P2DIR#define N_CS 0x20
#define N_CS_OUT P3OUT
#define N_CS_DIR P3DIR// define the command bytes (see table 24 on page 32 in the PDS
#define CMD_WAKEUP 0x00
#define CMD_RDATA 0x01
#define CMD_RDATAC 0x03
#define CMD_SDATAC 0x0f
#define CMD_RREG 0x10
#define CMD_WREG 0x50
#define CMD_SELFCAL 0xf0
#define CMD_SELFOCAL 0xf1
#define CMD_SELFGCAL 0xf2
#define CMD_SYSOCAL 0xf3
#define CMD_SYSGCAL 0xf4
#define CMD_SYNC 0xfc
#define CMD_STANDBY 0xfd
#define CMD_RESET 0xfe
#define CMD_WAKEUP2 0xff// define the ADS1256 registers
#define ADS1256_STATUS_REG 0x00
#define ADS1256_MUX_REG 0x01
#define ADS1256_ADCON_REG 0x02
#define ADS1256_DRATE_REG 0x03
#define ADS1256_IO_REG 0x04
#define ADS1256_OFC0_REG 0x05
#define ADS1256_OFC1_REG 0x06
#define ADS1256_OFC2_REG 0x07
#define ADS1256_FSC0_REG 0x08
#define ADS1256_FSC1_REG 0x09
#define ADS1256_FSC2_REG 0x0A// define multiplexer codes
#define ADS1256_MUXP_AIN0 (0x0 << 4)
#define ADS1256_MUXP_AIN1 (0x1 << 4)
#define ADS1256_MUXP_AIN2 (0x2 << 4)
#define ADS1256_MUXP_AIN3 (0x3 << 4)
#define ADS1256_MUXP_AIN4 (0x4 << 4)
#define ADS1256_MUXP_AIN5 (0x5 << 4)
#define ADS1256_MUXP_AIN6 (0x6 << 4)
#define ADS1256_MUXP_AIN7 (0x7 << 4)
#define ADS1256_MUXP_AINCOM (0x8 << 4)
#define ADS1256_MUXN_AIN0 (0x0)
#define ADS1256_MUXN_AIN1 (0x1)
#define ADS1256_MUXN_AIN2 (0x2)
#define ADS1256_MUXN_AIN3 (0x3)
#define ADS1256_MUXN_AIN4 (0x4)
#define ADS1256_MUXN_AIN5 (0x5)
#define ADS1256_MUXN_AIN6 (0x6)
#define ADS1256_MUXN_AIN7 (0x7)
#define ADS1256_MUXN_AINCOM (0x8)// define sample rates
#define ADS1256_RATE_30000 0xf0
#define ADS1256_RATE_15000 0xe0
#define ADS1256_RATE_7500 0xd0
#define ADS1256_RATE_3750 0xc0
#define ADS1256_RATE_2000 0xb0
#define ADS1256_RATE_1000 0xa1
#define ADS1256_RATE_500 0x92
#define ADS1256_RATE_100 0x82
#define ADS1256_RATE_60 0x72
#define ADS1256_RATE_50 0x63
#define ADS1256_RATE_30 0x53
#define ADS1256_RATE_25 0x43
#define ADS1256_RATE_15 0x33
#define ADS1256_RATE_10 0x23
#define ADS1256_RATE_5 0x13
#define ADS1256_RATE_2_5 0x03// define gain codes
#define ADS1256_GAIN_1 0x00
#define ADS1256_GAIN_2 0x01
#define ADS1256_GAIN_4 0x02
#define ADS1256_GAIN_8 0x03
#define ADS1256_GAIN_16 0x04
#define ADS1256_GAIN_32 0x05
#define ADS1256_GAIN_64 0x06typedef struct tagADS1256RegStruct
{
unsigned char Status;
unsigned char Mux;
unsigned char Adcon;
unsigned char Drate;
unsigned char Io;
unsigned char Ofc0;
unsigned char Ofc1;
unsigned char Ofc2;
unsigned char Fsc0;
unsigned char Fsc1;
unsigned char Fsc2;
} ADS1256_REG_STRUCT;void inline ADS1256EnableCS(void);
void inline ADS1256DisableCS(void);void ADS1256Init(void);
void ADS1256WaitForDataReady(void);void ADS1256Reset(void);
void ADS1256Sync(void);
void ADS1256Wakeup(void);void ADS1256SetRate(unsigned char Rate);
void ADS1256SetMux(unsigned char MuxCode);
void ADS1256SetGain(unsigned char GainCode);
long ADS1256ReadData(int fWaitFordataReady);
void ADS1256ReadRegister(int StartAddress, int NumRegs, unsigned char * pData);
void ADS1256WriteRegister(int StartAddress, int NumRegs, unsigned char * pData);
void ADS1256Calibrate(unsigned char CalCommand);#endif