1308|0

1140

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

dsp基础实验:发光二级管的显示 led.c [复制链接]

1,OSDFPGA配置一个专用的8位寄存器控制指示灯亮灭,访问地址为90080017h,由电路图可知低电平点亮。   

2,程序运行时,可直接editmemory。即修改90080017h地址的值(可在Edit-memory-edit对话框中修改,也可在View memory中直接点击修改),当前指示灯亮灭情况随之改变。程序仍继续运行。

3,BSL的结构及其使用

4,DSP/BIOS程序设计环境

程序如下:

 

#include "c6x.h"
#define PROGXOR 1
#define LEDCTLR (*((unsignedchar*)(0x90080017))) 
voidInitEMIF();    // 初始化EMIF接口
void Delay(unsigned intnDelay);   // 软件延时子程序


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 intnDelay)
{
      unsigned int i,j,k=0;
      for ( i=0;i<nDelay;i++ )
             for ( j=0;j<6144;j++ )
                    k++;
} 

// 初始化EMIF接口
void InitEMIF()
{
#defineEMIFA_GCTL      0x01800000
#defineEMIFA_CE1       0x01800004
#defineEMIFA_CE0       0x01800008
#defineEMIFA_CE2       0x01800010
#defineEMIFA_CE3       0x01800014
#defineEMIFA_SDRAMCTL  0x01800018
#defineEMIFA_SDRAMTIM  0x0180001c
#defineEMIFA_SDRAMEXT  0x01800020
#defineEMIFA_CE1SECCTL  0x01800044
#defineEMIFA_CE0SECCTL  0x01800048
#defineEMIFA_CE2SECCTL  0x01800050
#defineEMIFA_CE3SECCTL  0x01800054

   *(int*)EMIFA_GCTL    = 0x00052078;
   *(int*)EMIFA_CE0     = 0xffffffd3; 
   *(int*)EMIFA_CE1     = 0x73a28e01; 
   *(int*)EMIFA_CE2     = 0x22a28a22; 
   *(int*)EMIFA_CE3     = 0x22a28a42; 
   *(int *)EMIFA_SDRAMCTL = 0x57115000; 
   *(int *)EMIFA_SDRAMTIM = 0x0000081b; 
   *(int *)EMIFA_SDRAMEXT = 0x001faf4d; 
   *(int *)EMIFA_CE0SECCTL= 0x00000002; 
   *(int *)EMIFA_CE1SECCTL= 0x00000002; 
   *(int *)EMIFA_CE2SECCTL= 0x00000002; 
   *(int *)EMIFA_CE3SECCTL= 0x00000073;       

}
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表