📄 main.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 + -