📄 data_readwrite.h
字号:
//#include "fmeeprom1.h"
// DING YI CHANG SHU
// 256
// rom---i,v,type,mode
extern void read7758(unsigned char addr,unsigned char num);
extern void write7758(unsigned char addr,unsigned char num);
extern void do_ledspeek(unsigned char,unsigned char);
unsigned char read(a,b)
// a------store type
// b------date num
unsigned char a;
unsigned char b;
{unsigned char d1,d2,value;
unsigned long l;
unsigned int l1;
unsigned char h;
union k1 {
unsigned char s[2];
unsigned int w;
}d0;
value=0;
if(b!=0)
{
switch(a)
{
case RRAM :
value=1;
// xian zhi
for(d1=0;d1<b;d1++)
{
if(data_addr.addri<LENRAM)
wr_data[d1]=RAM[data_addr.addri];
data_addr.addri=data_addr.addri+1;
}
break;
case FM:
value=0;
for(d1=0;d1<3;d1++)
{
if(1==readfmeeprom(b))
{
value=1;
d1=3;
}
}
break;
case EPLOCK:
case EP1:
// case EP2:
value=0;
if(a==EP1)
{
h=0xa2;
}
// else
// {if(a==EP2)
// { h=0xa4;}
else
{ h=0xa6;}
// }
for(d1=0;d1<3;d1++)
{
if(1==read_byte(b,h))
{
value=1;
d1=3;
}
else
delay_1ms();
}
break;
case ROM:
value=1;
for(d1=0;d1<b;d1++)
{
if((data_addr.addrc[0]+d1)<100)
wr_data[d1]=display_enable[data_addr.addrc[0]+d1];
}
break;
}
}
do_ledspeek(value,0);
return value;
}
// if ep1 or eplock len must be <61 byte
unsigned char write(a,b)
unsigned char a;
unsigned char b;
// a------store type
// b------date num
{unsigned char d1,d2,value;
unsigned char len;
unsigned int address;
unsigned char h;
value=0;
if(b!=0)
{
switch(a)
{
case RRAM :
value=1;// xiang zhi
for(d1=0;d1<b;d1++)
{
if(data_addr.addri<LENRAM)
RAM[data_addr.addri]=wr_data[d1];
data_addr.addri=data_addr.addri+1;
}
break;
case FM:
writecommand=writecommand_fm;
value=0;
for(d1=0;d1<3;d1++)
{
if(1==writefmeeprom(b))
{
value=1;
d1=3;
}
}
break;
case EP1:
// case EP2:
case EPLOCK:
if(a==EP1)
{
h=0xa2;
}
// else
// {if(a==EP2)
// { h=0xa4;}
else
{ h=0xa6;}
// }
writecommand=writecommand_eeprom;
// changed 64 byte one time
address=data_addr.addrc[0];
if((address/64)==((address+b-1)/64))
{// support 24c128 24c256
system_control_time0=system_control_time0+1;
value=0;
for(d1=0;d1<3;d1++)
if(1==write_byte(b,h))
{
value=1;
d1=3;
}
else
delay_10ms();
}
else
{
system_control_time0=system_control_time0+2;
len=64-address%64;
value=0;
for(d1=0;d1<3;d1++)
{
if(1==write_byte(len,h))
{
value=1;
d1=3;
}
else
delay_10ms();
}
if(value==1)
{
delay_10ms();
data_addr.addri=data_addr.addri+len;
for(d1=0;d1<b-len;d1++)
wr_data[d1]=wr_data[d1+len];
value=0;
for(d1=0;d1<3;d1++)
{
if(1==write_byte(b-len,h))
{
value=1;
d1=3;
}
else
delay_10ms();
}
}
}
delay_10ms();
break;
}
}
writecommand=writecommand_start;
dr_wp0=1;
wp0=1;
do_ledspeek(value,0);
return value;
}
// add ting dian pan duan
delay_10ms()
{unsigned long l;
for(l=0;l<5000;l++) //4000
{;}
}
// delay 1 ms
delay_1ms()
{unsigned long l;
for(l=0;l<500;l++)
{;}
}
// flash data_addr.addc[0] [1] qu 0000----4096 [2] qu tong dao 0---5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -