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

[复制链接]
2466|1
 楼主| wangmengl 发表于 2007-12-5 15:18 | 显示全部楼层 |阅读模式
lpc中有IOPIN,IOSET,IOCLR,IODIR好像都不能存储数据<br /><br />而avr有PORTA,PINA,DDRA,PORTA是数据锁存器,感觉PINA像lpc中的IOPIN,DDRA像IODIR。<br /><br />lpc2148中有没有数据锁存器,像avr中的PORTA那样的,能存储数据的。如果没有的话数据怎么读写。<br /><br />我是用lpc2148接nand&nbsp;flash(K9F2G08U0M)。flash的8个IO接lpc的P1.16-P1.23&nbsp;。<br />CLE—P0.10,WE—P0.11,RE—P0.12,ALE—P0.13,RY/BY—P0.14&nbsp;&nbsp;。<br />没有使用CE口是因为硬件已经确定了,IO口用完了.CE是总是接上的。<br /><br />我定义了P1口高速使能&nbsp;。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />void&nbsp;BusSetOutput()<br />{<br />&nbsp;&nbsp;&nbsp;FIO1DIR2=0xFF;<br />}<br /><br />void&nbsp;BusSetInput()<br />{<br />&nbsp;&nbsp;&nbsp;FIO1DIR2=0x00;<br />}<br /><br />void&nbsp;BusSetData(BYTE&nbsp;Data)<br />{<br />&nbsp;&nbsp;FIO1PIN2=&nbsp;Data;<br />}<br /><br />BYTE&nbsp;BusGetData()<br />{<br />&nbsp;&nbsp;&nbsp;BYTE&nbsp;Result;<br />&nbsp;&nbsp;&nbsp;Result=FIO1PIN2;<br />&nbsp;&nbsp;&nbsp;return&nbsp;Result;<br />}<br /><br />void&nbsp;FlashWriteData(BYTE&nbsp;Data)<br />{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;FLASH_WE_LOW;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;BusSetData(Data);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;FLASH_WE_HIGH;<br />}<br /><br />BYTE&nbsp;FlashReadData()//?<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;BYTE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;FLASH_RE_LOW;<br />&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;=&nbsp;BusGetData();<br />&nbsp;&nbsp;&nbsp;&nbsp;FLASH_RE_HIGH;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;Result;<br />}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />BYTE&nbsp;FlashReadDeviceInfo()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;BYTE&nbsp;FlashMaker;<br />//&nbsp;&nbsp;FLASH_CE_LOW;<br />&nbsp;&nbsp;&nbsp;&nbsp;BusSetOutput();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Default&nbsp;is&nbsp;Output<br />&nbsp;&nbsp;&nbsp;&nbsp;FLASH_RE_HIGH;<br />&nbsp;&nbsp;&nbsp;&nbsp;FLASH_WE_HIGH;<br />&nbsp;&nbsp;&nbsp;&nbsp;FLASH_CLE_HIGH;<br />&nbsp;&nbsp;&nbsp;&nbsp;FlashWriteData(CMD_READ_ID);<br />&nbsp;&nbsp;&nbsp;&nbsp;FLASH_CLE_LOW;<br />&nbsp;&nbsp;&nbsp;&nbsp;FLASH_ALE_HIGH;<br />&nbsp;&nbsp;&nbsp;&nbsp;FlashWriteData(0x00);//?<br />&nbsp;&nbsp;&nbsp;&nbsp;FLASH_ALE_LOW;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;BusSetInput();<br />&nbsp;&nbsp;&nbsp;&nbsp;FlashMaker&nbsp;=&nbsp;FlashReadData();<br />&nbsp;&nbsp;&nbsp;&nbsp;BusSetOutput();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;FlashMaker;<br /><br />}<br />这样可以读出flash的ID吗???我主要是不确定BusSetData()和BusGetData()是否正确!!我在板子上试了,不可以。那要怎么读写数据,地址和命令呢???<br />是不是要根据电路图来确定数据寄存器,地址寄存器,命令寄存器的地址??怎么确定??<br /><br />请教高手们!!!!
 楼主| wangmengl 发表于 2007-12-8 08:04 | 显示全部楼层

自己顶下!!

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

65

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部