⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 基于zlg SmartARM2300平台的源码
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			main.c
** Last modified Date:  2004-09-16
** Last Version:		1.0
** Descriptions:		The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by:			Lizhongsheng
** Created date:		2007-7-6
** Version:				1.0
** Descriptions:		EMCTest
**
**------------------------------------------------------------------------------------------------------
** Modified by:			yangshiping
** Modified date:		2007-09-03
** Version:				
** Descriptions:		对代码风格和注释进行校对、修改
**
** Rechecked by :        Litiantian
********************************************************************************************************/
#include "config.h"

#define CS1ADDR0BUF1  (*(volatile unsigned char *)(0x80004000))
#define CS1ADDR0BUF2  (*(volatile unsigned short *)(0x80004000))
#define CS1ADDR0BUF3  (*(volatile unsigned long *)(0x80004000)) 

#define ADDR16	(1 << 28)

/********************************************************************************************************
** 函数名称 :EMCInit
** 函数功能 :EMC初始化
** 入口参数 :无
** 出口参数 :无
**********************************************************************************************************/
void EMCInit(void)
{
   uint32 tmp;
   
   SCS 		   |= 0x01;
   PCONP 		= PCONP | 0x00000800; 	  	// 打开EMC控制器
   EMCControl 	= 0x00000001;

   
   PINSEL6 		= 0x00005555;	       		// D0--D7脚
   PINSEL8 		= 0x55555555;	      	 	// A0--A15脚
  
   /* 设置nOE, nWE, nCS0, nCS1脚 */ 
   tmp 		= PINSEL9;
   tmp 	   &= 0x0FF0FFFF;
   PINSEL9  = tmp | 0x50090000;	  
   
   /* 设置ADDR16脚,选择低64K */
   tmp 		= ~(3 << 24);
   PINSEL3 	= tmp & PINSEL3;
   FIO1DIR 	= FIO1DIR | ADDR16;
   FIO1CLR 	= ADDR16;
 	
   /* 设置Bank0的时序 */
   EMCStaticConfig0   = 0x0;
   EMCStaticWaitWen0  = 0x0;
   EMCStaticWaitOen0  = 0x0;
   EMCStaticWaitRd0   = 0x1f;
   EMCStaticWaitPage0 = 0x0;
   EMCStaticWaitWr0   = 0x1f;
   EMCStaticWaitTurn0 = 0x0;
   
   /*设置Bank1的时序*/
   EMCStaticConfig1   = 0x0;
   EMCStaticWaitWen1  = 0x0;
   EMCStaticWaitOen1  = 0x0;
   EMCStaticWaitRd1   = 0x1f;
   EMCStaticWaitPage1 = 0x0;
   EMCStaticWaitWr1   = 0x1f;
   EMCStaticExtendedWait = 0x0;
   EMCStaticWaitTurn1 = 0x0F;
       
}

volatile	char  m;
volatile	short n;
volatile	long  x;
/********************************************************************************************************
** 函数名称 :main
** 函数功能 :分别以字节、半字、字对外部存储器进行读写
**********************************************************************************************************/
int main(void)
{	
	EMCInit();
	
	while (1)
	{
		/* 以字节方式读写 */
		CS1ADDR0BUF1 = 0x55;
		m            = CS1ADDR0BUF1;		
		
		/* 以半字方式读写 */
		CS1ADDR0BUF2 = 0x55AA;
		n            = CS1ADDR0BUF2;		
		
		/* 以字方式读写 */
		CS1ADDR0BUF3 = 0x55AA55AA;
		x            = CS1ADDR0BUF3;
	}
    return (0);
}
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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