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

📄 led0.c

📁 ICETEK-DM642-EDUlabv1.3.rar
💻 C
字号:
#include "c6x.h"

//#define PROGXOR 1

#define LEDCTLR (*((unsigned char*)(0x90080017)))

void InitEMIF();	// 初始化EMIF接口
void Delay(unsigned int nDelay);	// 软件延时子程序

main()
{
	int i,j;
	unsigned int uWork;
	
	while ( 1 )
	{
		LEDCTLR=0;		// 点亮所有8个指示灯
		Delay(1024);	// 等待片刻
		LEDCTLR=0x0ff;	// 关闭所有8个指示灯
		Delay(1024);
#ifndef PROGXOR
		uWork=1;		// 以下逐个点亮指示灯
		for ( i=0;i<8;i++ )
		{
			LEDCTLR&=((~uWork)&0x0ff);
			uWork<<=1;
			Delay(1024);
		}
		uWork=1;		// 以下逐个关闭指示灯
		for ( i=0;i<8;i++ )
		{
			LEDCTLR|=uWork;
			uWork<<=1;
			Delay(1024);
		}
#else
		for ( j=0;j<2;j++ )
		{
			uWork=1;		// 以下逐个关闭或点亮指示灯
			for ( i=0;i<8;i++ )
			{
				LEDCTLR^=uWork;
				uWork<<=1;
				Delay(1024);
			}
		}
#endif
	}
}

// 软件延时子程序
void Delay(unsigned int nDelay)
{
	unsigned int i,j,k;
	
	for ( i=0;i<nDelay;i++ )
		for ( j=0;j<6144;j++ )
			k++;
}

// 初始化EMIF接口
void InitEMIF()
{

#define EMIFA_GCTL       0x01800000
#define EMIFA_CE1        0x01800004
#define EMIFA_CE0        0x01800008
#define EMIFA_CE2        0x01800010
#define EMIFA_CE3        0x01800014
#define EMIFA_SDRAMCTL   0x01800018
#define EMIFA_SDRAMTIM   0x0180001c
#define EMIFA_SDRAMEXT   0x01800020
#define EMIFA_CE1SECCTL  0x01800044
#define EMIFA_CE0SECCTL  0x01800048
#define EMIFA_CE2SECCTL  0x01800050
#define EMIFA_CE3SECCTL  0x01800054
	
    /* EMIFA */
    *(int *)EMIFA_GCTL     = 0x00052078;
    *(int *)EMIFA_CE0      = 0xffffffd3;  /* CE0 SDRAM                     */
    *(int *)EMIFA_CE1      = 0x73a28e01;  /* CE1 Flash + CPLD              */
    *(int *)EMIFA_CE2      = 0x22a28a22;  /* CE2 子卡 32-bit 异步接口      */
    *(int *)EMIFA_CE3      = 0x22a28a42;  /* CE3 子卡 32-bit 同步接口      */
    *(int *)EMIFA_SDRAMCTL = 0x57115000;  /* SDRAM 控制                    */
    *(int *)EMIFA_SDRAMTIM = 0x0000081b;  /* SDRAM 刷新时序                */
    *(int *)EMIFA_SDRAMEXT = 0x001faf4d;  /* SDRAM 扩展控制                */
    *(int *)EMIFA_CE0SECCTL= 0x00000002;  /* CE0 第二控制寄存器            */
    *(int *)EMIFA_CE1SECCTL= 0x00000002;  /* CE1 第二控制寄存器            */
    *(int *)EMIFA_CE2SECCTL= 0x00000002;  /* CE2 第二控制寄存器            */
    *(int *)EMIFA_CE3SECCTL= 0x00000073;  /* CE3 第二控制寄存器            */	
}


⌨️ 快捷键说明

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