📄 7022_a.c
字号:
#include <C:\TDS-EMU2XX-1\gzy\tyclh.h>
#include <C:\TDS-EMU2XX-1\gzy\ADio.h>
extern unsigned i_574vol;
/*---------------------7022_a----------------------------*/
#define cs_a_h i_574vol |= 0x0020; CsIo574= i_574vol; Wait;
#define cs_a_l i_574vol &= 0x00df; CsIo574= i_574vol; Wait;
#define sclk_a_h i_574vol |= 0x0008; CsIo574= i_574vol; Wait;
#define sclk_a_l i_574vol &= 0x00f7; CsIo574= i_574vol; Wait;
#define data_a_h i_574vol |= 0x0010; CsIo574= i_574vol; Wait;
#define data_a_l i_574vol &= 0x00ef; CsIo574= i_574vol; Wait;
/*---------------------7022_b----------------------------*/
#define cs_b_h i_574vol |= 0x0004; CsIo574= i_574vol; Wait;
#define cs_b_l i_574vol &= 0x00fb; CsIo574= i_574vol; Wait;
#define sclk_b_h i_574vol |= 0x0001; CsIo574= i_574vol; Wait;
#define sclk_b_l i_574vol &= 0x00fe; CsIo574= i_574vol; Wait;
#define data_b_h i_574vol |= 0x0002; CsIo574= i_574vol; Wait;
#define data_b_l i_574vol &= 0x00fd; CsIo574= i_574vol; Wait;
/*------------------------------------------------------*/
/*void read7022_a(int com);
void write7022_a(int com,long data);
void read7022_b(int com);
void write7022_b(int com,long data); */
/*-------------------------7022_a--------------------------*/
long read7022_a(int com)
{ long data=0;
long jj=0;
int i=0;
int k=0x80;
reg_aspcr&= 0xfff0;
cs_a_h;
sclk_a_l;
cs_a_l;
for (i=0;i<=7;i++) /*送地址*/
{
if (com&k)
{
sclk_a_h;
data_a_h;
sclk_a_l;
}
else
{
sclk_a_h;
data_a_l;
sclk_a_l;
}
k=k/2;
}
Wait;Wait;Wait;
for (i=23;i>=0;i--) /*读数据*/
{
sclk_a_h;
jj=reg_iosr&0x0001;
jj=jj<<i;
data=jj+data;
sclk_a_l;
}
cs_a_h;
return(data);
}
/*-----------------------------------------------------------*/
void write7022_a(int com,long data)
{
long jj=0x800000;
int i=0;
int k=0x80;
// reg_aspcr&= 0xfff0;
cs_a_h;
sclk_a_l;
cs_a_l;
for (i=0;i<=7;i++) /*送地址*/
{
if (com&k)
{
sclk_a_h;
data_a_h;
sclk_a_l;
}
else
{
sclk_a_h;
data_a_l;
sclk_a_l;
}
k=k/2;
}
for (i=0;i<=23;i++) /*写数据*/
{
if (data&jj)
{
sclk_a_h;
data_a_h;
sclk_a_l;
}
else
{
sclk_a_h;
data_a_l;
sclk_a_l;
}
jj=jj/2;
}
cs_a_h;
}
/*====================7022_b===========================*/
long read7022_b(int com)
{ long data=0;
long jj=0;
int i=0;
int k=0x80;
reg_aspcr&= 0xfff0;
cs_b_h;
sclk_b_l;
cs_b_l;
for (i=0;i<=7;i++) /*送地址*/
{
if (com&k)
{
sclk_b_h;
data_b_h;
sclk_b_l;
}
else
{
sclk_b_h;
data_b_l;
sclk_b_l;
}
k=k/2;
}
Wait;Wait;Wait;
for (i=23;i>=0;i--) /*读数据*/
{
sclk_b_h;
jj=reg_iosr&0x0004;
jj=jj>>2;
jj=jj<<i;
data=jj+data;
sclk_b_l;
}
cs_b_h;
return(data);
}
/*-----------------------------------------------------------*/
void write7022_b(int com,long data)
{
long jj=0x800000;
int i=0;
int k=0x80;
// reg_aspcr&= 0xfff0;
cs_b_h;
sclk_b_l;
cs_b_l;
for (i=0;i<=7;i++) /*送地址*/
{
if (com&k)
{
sclk_b_h;
data_b_h;
sclk_b_l;
}
else
{
sclk_b_h;
data_b_l;
sclk_b_l;
}
k=k/2;
}
/* Wait;Wait;Wait; */
for (i=0;i<=23;i++) /*写数据*/
{
if (data&jj)
{
sclk_b_h;
data_b_h;
sclk_b_l;
}
else
{
sclk_b_h;
data_b_l;
sclk_b_l;
}
jj=jj/2;
}
cs_b_h;
}
/*-------------------------------------*/
delaytime(int cishu)
{
int ii,i;
for (ii=0;ii<cishu;ii++)
{
for(i=0;i<0xf;i++)
{
asm(" rpt #75");
asm(" nop") ;
}
}
}
/*------------------------------------------------------*/
void reset7022_a()
{
i_574vol &= 0x00bf;
CsIo574= i_574vol;
delaytime(10);
i_574vol |= 0x0040;
CsIo574= i_574vol;
}
/*------------------------------------------------------*/
void reset7022_b()
{
i_574vol &= 0x007f;
CsIo574= i_574vol;
delaytime(10);
i_574vol |= 0x0080;
CsIo574= i_574vol;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -