#include "math.h"
#include <ads1242.h>
#include "stm32f10x_lib.h"
/*Registers' Address*/
#define REG_STATUS 0
#define REG_MUX 1
#define REG_ADCON 2
#define REG_DRATE 3
#define REG_IO 4
#define REG_OFC0 5
#define REG_OFC1 6
#define REG_OPC2 7
#define REG_FSC0 8
#define REG_FSC1 9
#define REG_FSC2 10
/*Operation Command*/
#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_WAKEUP 0xFF
#define PGA_1 0x00
#define PGA_2 0x01
#define PGA_4 0x02
#define PGA_8 0x03
#define PGA_16 0x04
#define PGA_32 0x05
#define PGA_64 0x06
#define PGA_64 0x07
#define ADS1256_DRDY GPIOE->IDR&(1<<10)
#define ADS1256_DO GPIOE->IDR&(1<<11)
#define SetADS1256_DRDY GPIOE->BSRR = (1<<10)
#define SetADS1256_DO GPIOE->BSRR = (1<<11)
#define ADS1256_SYNC (1<<8)
#define ADS1256_CS (1<<9)
#define ADS1256_IN (1<<12)
#define ADS1256_CLK (1<<13)
#define SetADS1256_SYNC GPIOE->BSRR = ADS1256_SYNC
#define SetADS1256_CS GPIOE->BSRR = ADS1256_CS
#define SetADS1256_IN GPIOE->BSRR = ADS1256_IN
#define SetADS1256_CLK GPIOE->BSRR = ADS1256_CLK
#define ClrADS1256_SYNC GPIOE->BRR = ADS1256_SYNC
#define ClrADS1256_CS GPIOE->BRR = ADS1256_CS
#define ClrADS1256_IN GPIOE->BRR = ADS1256_IN
#define ClrADS1256_CLK GPIOE->BRR = ADS1256_CLK
void delayad(void)
{
unsigned long i = 1000;
while(i--);
}
void ADS1256_Write_Byte(unsigned char d)
{
unsigned char i=8;
SetADS1256_CLK ;
while(i--)
{
if(d & 0X80)
SetADS1256_IN;
else
ClrADS1256_IN;
delayad();
ClrADS1256_CLK;
delayad();
SetADS1256_CLK;
delayad();
d <<= 1;
}
}
unsigned char ADS1256_Read_Byte(void)
{
unsigned char i=8,d;
SetADS12156_CLK;
while(i--)
{
d <<=1;
SetADS1256_DO;
if(ADS1256_DO)
d |= 0x01;
else
d &= 0xfe;
delayad();
ClrADS1256_CLK;
delayad();
SetADS12156_CLK;
}
return d;
}
//基于的处理器是STM32
//因为写的很早,当时编码不规范,必要的注释都没有,现在回头看看失败~~