📄 ads1100.c
字号:
#define ADS1100_C
#include "common.h"
#include "ads1100.h"
#include "intrins.h"
#include "stdio.h"
#include "system.h"
#define nops(); _nop_(); _nop_(); _nop_(); _nop_();
void startads1100()
{
EA = 0;
ADS1100_SDA = 1;
ADS1100_SCL = 1;
nops();
ADS1100_SDA = 0;
nops();
ADS1100_SCL = 0;
EA = 1;
}
void stopads1100()
{
EA = 0;
ADS1100_SCL = 0;
ADS1100_SDA = 0;
ADS1100_SCL = 1;
nops();
ADS1100_SDA = 1;
nops();
ADS1100_SCL = 0;
EA = 1;
}
void ackads1100()
{
EA = 0;
ADS1100_SCL = 0;
ADS1100_SDA = 0;
nops();
ADS1100_SCL = 1;
nops();
ADS1100_SCL = 0;
nops();
EA = 1;
}
/*
void noackads1100()
{
ADS1100_SDA = 1;
nops();
ADS1100_SCL = 0;
nops();
ADS1100_SCL = 1;
nops();
ADS1100_SCL = 0;
nops();
}
*/
uchar waitackads1100()
{
uchar i=255;
EA = 0;
ADS1100_SDA = 1;
while(i--)
{
nops();
if(ADS1100_SDA == 0)
{
ADS1100_SCL = 0;
nops();
ADS1100_SCL = 1;
nops();
ADS1100_SCL = 0;
nops();
return 1;
}
}
stopads1100();
EA = 1;
return 0;
}
void clockoutads1100(uchar dat)
{
uchar i;
EA = 0;
for(i=0;i<8;i++)
{
ADS1100_SCL = 0;
nops();
if(dat &0x80)
ADS1100_SDA = 1;
else
ADS1100_SDA = 0;
dat <<= 1;
ADS1100_SCL = 1;
nops();
ADS1100_SCL = 0;
nops();
}
EA = 1;
}
uchar clockinads1100()
{
uchar i;
uchar c = 0;
EA = 0;
for(i=0;i<8;i++)
{
c <<= 1;
ADS1100_SCL = 0;
nops();
ADS1100_SCL = 1;
nops();
ADS1100_SDA = 1;
if(ADS1100_SDA == 1)
c |= 0x01;
ADS1100_SCL = 0;
nops();
}
EA = 1;
return c;
}
uchar readads1100(ushort *pdat)
{
uchar c1,c2;
EA = 0;
startads1100();
//device address
clockoutads1100(0x9f);
if(!waitackads1100()) return 0;
//read data
c1 = clockinads1100();
ackads1100();
c2 = clockinads1100();
ackads1100();
stopads1100();
*pdat = c1*256+c2;
EA = 1;
return 1;
}
/*
uchar readads1100(uchar addr,uchar *pdat)
{
uchar c;
startads1100();
//device address
c = 0x9e;
clockoutads1100(c);
if(!waitackads1100()) return 0;
//memory address
c = addr;
clockoutads1100(c);
if(!waitackads1100()) return 0;
startads1100();
//device address
c = 0x9f;
clockoutads1100(c);
if(!waitackads1100()) return 0;
//read data
*pdat = clockinads1100();
noackads1100();
stopads1100();
return 1;
}
*/
uchar writeads1100(uchar dat)
{
EA = 0;
startads1100();
//device address
clockoutads1100(0x9e);
if(!waitackads1100()) return 0;
//memory address
// c = addr;
// clockoutads1100(c);
// if(!waitackads1100()) return 0;
//write data
clockoutads1100(dat);
if(!waitackads1100()) return 0;
stopads1100();
EA = 1;
return 1;
}
uchar resetads1100()
{
EA = 0;
startads1100();
//device address
clockoutads1100(0x00);
if(!waitackads1100()) return 0;
//write data
clockoutads1100(0x06);
if(!waitackads1100()) return 0;
stopads1100();
EA = 1;
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -