这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 向各位大哥请教几个外部存储器的问题,谢谢!

共2条 1/1 1 跳转至

向各位大哥请教几个外部存储器的问题,谢谢!

院士
2006-09-17 18:14:16     打赏
向各位大哥请教几个外部存储器的问题,谢谢!



关键词: 各位     大哥     请教     几个     外部     存储器     问题     谢谢    

院士
2006-12-22 22:43:00     打赏
2楼
问 //功能:对 SST39VF160 进行全片擦除,然后写两字节数据到芯片 0
//地址,再读出来效验。如效验通过则蜂鸣器响医一声,否则不停的
//报警。

#include "config.h"

#define  BEEPCON 0x00000080  /*P0.7 引脚控制 B1,低电平蜂鸣*/


//FLASH 的起始地址(分配为 Bank1)

#define  FLASH_ADDR    0x81000000

//转换地址。将要发送给 SST39VF160 的地址值进行转换,以便于
//LPC2210 输出。
//由于 SST39VF160 的 A0 是与 LPC2210 的 A1 相连,所以 ADDR
//要左移 1 位。

#define GetAddr(addr) (volatile unit16 *)(FLASH_ADDR|(addr<<1))

//************************************************
//名称:Wordprogram()
//功能:半字(16位)数据编程
//入口参数:Addr  编程地址(SST39VF160 内部地址)
//         Data  编程数据
//出口参数:成功:TRUE ,失败:FALSE
//************************************************

unit8 Wordprogram(uint32 Addr,uint16 Data)
{
volatile uint16 *ip;
uint16 temp1,temp2;

ip=GetAddr(0x5555);   //转换地址 0x5555
ip[0]=0xaaaa          //第1个写周期,地址 0x5555,数据 0xAA
ip=GetAddr(0x2aaa);
ip[0]=0x5555;         //第2个写周期,地址 0x2aaa,数据 0x55
ip=GetAddr(0x5555);
ip[0]=0xa0a0;         //第3个写周期,地址 0x5555,数据 0xA0

ip=(volatile uint16 *)(FLASH_ADDR|(Addr&0x1FFFFF);
*ip=Data              //第4个写周期,地址 0xAddr,数据 Data


while(1)
{
  temp1 = *ip;
  temp2 = *ip;
  if (temp1 == temp2)
     {
       if (temp1 != Data)
         {
          return(FALSE);
         }
       else
         {
          return(TRUE);
         }
      }
  }
  return(TRUE);
}


请教:
      问题1:
          为什么要将要发送给 SST39VF160 的地址值进行转换呢?
          转变的话,它是按照什么规则进行转变的呢?
      问题2:
           ip=GetAddr(0x5555);   //转换地址 0x5555

           ip=GetAddr(0x5555);
           得到 ip 应该是:ip=0x8100AAAA 是吗?
      问题3:
            ip[0]=0xaaaa          //第1个写周期,地址 0x5555,数据 0xAA

           
          为什么不是 //第一个写周期,地址 x8100AAAA 数据 0xaaaa ?
          这是为什么啊?


在此先谢谢各位大哥了!
1: re看来台兄和我一样都是出学者拉~~
帮台兄鼎鼎! 2: 各位大侠,快来救命啊!各位大侠:
ip[0]=0xaaaa          //第1个写周期,地址 0x5555,数据 0xAA

为什么 数据不是 0xaaaa 啊


           
半字(16位)数据编程,也可以放的下  0xaaaa 啊?


各位大侠,救救我哦~~
谢谢!

3: re各位大侠,快来救命啊!

各位大侠:
ip[0]=0xaaaa          //第1个写周期,地址 0x5555,数据 0xAA

为什么 数据不是 0xaaaa 啊


           
半字(16位)数据编程,也可以放的下  0xaaaa 啊?


各位大侠,救救我哦~~
谢谢!



共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]