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

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

   blueskyhjc 
blueskyhjc发表的帖子 

 求助:哪位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;

}

发表时间:2004年8月18日14:36:21

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:SDT下建立库文件我用SDT建立库文件,在编译时出现两个错误,请教是怎么回事,是不是前面哪里参数设置
[下一篇帖子]:我是想在0x8000这个高地址存储另外一份完全独立的程序,而不是某个函数。我是想在0x8000这个高