LED0.c
上传用户:dahaojd
上传日期:2008-01-29
资源大小:14357k
文件大小:2k
- #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; // 点亮所有4个指示灯
- Delay(1024); // 等待片刻
- LEDCTLR=0x0f; // 关闭所有4个指示灯
- Delay(1024);
- #ifndef PROGXOR
- uWork=1; // 以下逐个点亮指示灯
- for ( i=0;i<4;i++ )
- {
- LEDCTLR&=((~uWork)&0x0ff);
- uWork<<=1;
- Delay(1024);
- }
- uWork=1; // 以下逐个关闭指示灯
- for ( i=0;i<4;i++ )
- {
- LEDCTLR|=uWork;
- uWork<<=1;
- Delay(1024);
- }
- #else
- for ( j=0;j<2;j++ )
- {
- uWork=1; // 以下逐个关闭或点亮指示灯
- for ( i=0;i<4;i++ )
- {
- LEDCTLR^=uWork;
- uWork<<=1;
- Delay(1024);
- }
- }
- #endif
- }
- }
- // 软件延时子程序
- void Delay(unsigned int nDelay)
- {
- unsigned int i,j,k=0;
-
- 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 第二控制寄存器 */
- }