打印

lpc2148中有没有数据锁存器??

[复制链接]
1621|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangmengl|  楼主 | 2007-12-5 15:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
lpc中有IOPIN,IOSET,IOCLR,IODIR好像都不能存储数据

而avr有PORTA,PINA,DDRA,PORTA是数据锁存器,感觉PINA像lpc中的IOPIN,DDRA像IODIR。

lpc2148中有没有数据锁存器,像avr中的PORTA那样的,能存储数据的。如果没有的话数据怎么读写。

我是用lpc2148接nand flash(K9F2G08U0M)。flash的8个IO接lpc的P1.16-P1.23 。
CLE—P0.10,WE—P0.11,RE—P0.12,ALE—P0.13,RY/BY—P0.14  。
没有使用CE口是因为硬件已经确定了,IO口用完了.CE是总是接上的。

我定义了P1口高速使能 。                      
void BusSetOutput()
{
   FIO1DIR2=0xFF;
}

void BusSetInput()
{
   FIO1DIR2=0x00;
}

void BusSetData(BYTE Data)
{
  FIO1PIN2= Data;
}

BYTE BusGetData()
{
   BYTE Result;
   Result=FIO1PIN2;
   return Result;
}

void FlashWriteData(BYTE Data)
{   
    FLASH_WE_LOW;

    BusSetData(Data);
    
    FLASH_WE_HIGH;
}

BYTE FlashReadData()//?
{
    BYTE        Result;

    FLASH_RE_LOW;
    Result = BusGetData();
    FLASH_RE_HIGH;

    return Result;
}                        
BYTE FlashReadDeviceInfo()
{
    BYTE FlashMaker;
//  FLASH_CE_LOW;
    BusSetOutput();            // Default is Output
    FLASH_RE_HIGH;
    FLASH_WE_HIGH;
    FLASH_CLE_HIGH;
    FlashWriteData(CMD_READ_ID);
    FLASH_CLE_LOW;
    FLASH_ALE_HIGH;
    FlashWriteData(0x00);//?
    FLASH_ALE_LOW;

    BusSetInput();
    FlashMaker = FlashReadData();
    BusSetOutput();            
    return FlashMaker;

}
这样可以读出flash的ID吗???我主要是不确定BusSetData()和BusGetData()是否正确!!我在板子上试了,不可以。那要怎么读写数据,地址和命令呢???
是不是要根据电路图来确定数据寄存器,地址寄存器,命令寄存器的地址??怎么确定??

请教高手们!!!!

相关帖子

沙发
wangmengl|  楼主 | 2007-12-8 08:04 | 只看该作者

自己顶下!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

65

帖子

0

粉丝