导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→求助:哪位DX给个AT45D041的程序给我参考一下,我写的[blueskyhjc]

 *第24840篇: 求助:哪位DX给个AT45D041的程序给我参考一下,我写的不好使,但还看不出问题

  
楼 主:blueskyhjc 2004年8月18日14:36
 求助:哪位DX给个AT45D041的程序给我参考一下,我写的不好使,但还看不出问题
uchar inbyt(void)//read 1 byte from at45d041
 {
   uchar data i,j,k;
   k=0;
   for (i=0;i  <8;i++)
                   {
                   IC_SCK=0;
                   j=IC_SO;
                   k=(k  <  <1)|j;
                   IC_SCK=1;
                   }
   return (k);
 }
 //------------------------------------------------
void outbyt(uchar dat)//write 1 byte to at45d041
{
   uchar data i,j;
   for (i=0;i  <8;i++)
                    {
                     IC_SCK=0; j=dat&0x80; dat=dat  <  <1;
                     if(j==0x80){IC_SI=1;IC_SCK=1;}
                     else       {IC_SI=0;IC_SCK=1;}
                    }
   //IC_SI=0;
}

void Rdbuffer(uchar number,uchar *p,bytes,uint offset)//读取缓冲区数据
(缓冲区名,存放数据首地址,字节数,偏移地址)
{ uchar dat[5],i;    //
  if (number==1)dat[0]=0x54;
  else dat[0]=0x56;
  dat[1]=0; 
  if (offset>  255)dat[2]=1;
  else dat[2]=0; 
  dat[3]=(char)(offset&0x00ff);
  dat[4]=0; 
  IC_CS=0;
  for (i=0;i  <5;i++)
      {
        outbyt(dat[i]);
      }
  for (i=0;i  <bytes;i++)
      {
       *p=inbyt();p++;
      }
  IC_CS=1;

}

void Wrbuffer(uchar number,uchar *p,bytes,uint offset)//写数据到缓冲区
参数:缓冲区名,写数据的起始地址,字节数,偏移地址
{  
  uchar dat[4],i;
  if (number==1)dat[0]=0x84;
  else dat[0]=0x87;
  dat[1]=0; 
  if (offset>  255)dat[2]=1;
  else dat[2]=0; 
  dat[3]=(char)(offset&0x00ff);
        
  IC_CS=0;
  for (i=0;i  <4;i++)
      {
        outbyt(dat[i]);
      }
  for (i=0;i  <bytes;i++)
      {
       outbyt(*p);p++;
      }
  IC_CS=1;

}


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:SDT下建立库文件

[下一篇主题]:求rtos