k9f1g08u0m.c

来自「此案例为ARM2131+flash+QVGAtft+按键的读写显示控制程序」· C语言 代码 · 共 114 行

C
114
字号
/****************************************Copyright (c)**************************************************
**                               Beijing Visionox Technology Co.,LTD.
**                                      
**                                 
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			main.c
** Last modified Date:  2007-03-016
** Last Version:		1.0
** Descriptions:		The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by:			Alan Dong
** Created date:		2007-03-16
** Version:				1.0
** Descriptions:		The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:			AlanDong
** Modified date:		2007-03-20
** Version:				1.1
** Descriptions:		Read NandFlash data and send to TFT display successful
**
********************************************************************************************************/
#include "config.h"
#include "KEY_LED.h"
#include "TFT_LCD.h"

//void DisplayFlash(uint32 Fdata);




/*******************************************************************************************************/
void NF_Wait_RB()
{

while(!((IO1PIN>>25)&0x0001))
;
}	//Wait Nand ready
void Write_Data(unsigned char S_Page,unsigned char E_Page,uint32 block)//,uint32 block)
{
  uint32 i,j;
 unsigned char NF_DATA1[2];
  

  ////////////////////////////
  IO0SET=NAND_CLE;
  IO0CLR=NAND_CS;
  IO0CLR=NAND_WR;
  IO0CLR=NAND_ALE;
  IO0SET=NAND_RD;  
  IO1PIN=(IO1PIN&0xFF00FFFF)|0x00000000;
 // for(i=0;i<35;i++);
  IO0SET=NAND_WR;
  IO0CLR=NAND_CLE;
  IO0SET=NAND_ALE;
  //Send NandFlash adress
  IO0CLR=NAND_WR;
  IO1PIN=(IO1PIN&0xFF00FFFF)|(0x00000000<<16);
  IO0SET=NAND_WR;
  IO0CLR=NAND_WR;
  IO1PIN=(IO1PIN&0xFF00FFFF)|(0x00000000<<16);
  IO0SET=NAND_WR;
  IO0CLR=NAND_WR;
  IO1PIN=(IO1PIN&0xFF00FFFF)|((S_Page)<<16);
  IO0SET=NAND_WR;
  IO0CLR=NAND_WR;
  IO1PIN=(IO1PIN&0xFF00FFFF)|(block<<16);
  IO0SET=NAND_WR;
  //Send Read page instruction
  IO0CLR=NAND_ALE;
  IO0SET=NAND_CLE;
  IO0CLR=NAND_WR;
  IO1PIN=(IO1PIN&0xFF00FFFF)|(0x00300000);
 // for(i=0;i<30;i++);
  IO0SET=NAND_WR;
  IO0CLR=NAND_CLE;
  NF_Wait_RB();
  //Maybe,because of the arm's high speed,we need to wait period of time
 // for(i=0;i<350;i++);
 
 	
	 
  for(j=0;j<1024;j++)
  {
  IO1DIR=IO1DIR&(~NAND_DATA);//Set D0~d7 used as input port for NF read
  for(i=0;i<2;i++)		 
	{
  	IO0CLR=NAND_RD; 
  	NF_DATA1[i]=IO1PIN>>16; //Save  data to a arry  	
  	IO0SET=NAND_RD;
  	}  
  IO1DIR=IO1DIR|NAND_DATA;
  Write_data((NF_DATA1[0]<<8)|(NF_DATA1[1]<<16));			//
  
	}
}
void NF_Init(void)
{//uint32 i;
//  IO0SET=TFT_CS;			//Unable TFT LCD
  IO0CLR=NAND_ALE;
  IO0CLR=NAND_CLE;
  IO0CLR=NAND_CS;
  IO0SET=NAND_WR;
  IO0SET=NAND_RD;
//  IO1DIR=IO1DIR|NAND_RB;
//  IO1CLR=NAND_RB;
//  ;
 // ;
//  ;
  NF_Wait_RB();
//   for(i=0;i<350;i++);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?