查看: 483|回复: 0

DSP基础实验:发光二级管的显示 led.c

[复制链接]

该用户从未签到

发表于 2020-11-21 19:44:20 | 显示全部楼层 |阅读模式
分享到:

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


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

3,BSL的结构及其使用

4,DSP/BIOS程序设计环境

程序如下:

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


  6. main()
  7. {
  8.       int i,j;
  9.       unsigned int uWork;
  10.       while ( 1 )
  11.       {
  12.              LEDCTLR=0;       // 点亮所有8个指示灯
  13.               Delay(1024);    //等待片刻
  14.              LEDCTLR=0x0ff;   // 关闭所有8个指示灯
  15.              Delay(1024);

  16. #ifndef PROGXOR

  17.              uWork=1;             // 以下逐个点亮指示灯
  18.              for ( i=0;i<8;i++ )
  19.             {
  20.                     LEDCTLR&=((~uWork)&0x0ff);
  21.                     uWork<<=1;
  22.                     Delay(1024);
  23.              }
  24.              uWork=1;             // 以下逐个关闭指示灯
  25.              for ( i=0;i<8;i++ )?
  26.              {
  27.                     LEDCTLR|=uWork;
  28.                     uWork<<=1;
  29.                     Delay(1024);
  30.              }
  31. #else
  32.              for ( j=0;j<2;j++ )
  33.              {
  34.                     uWork=1;             // 以下逐个关闭或点亮指示灯
  35.                     for ( i=0;i<8;i++ )
  36.                     {
  37.                            LEDCTLR^=uWork;
  38.                            uWork<<=1;
  39.                            Delay(1024);
  40.                     }
  41.              }
  42. #endif
  43.       }
  44. }
复制代码
// 软件延时子程序
  1. void Delay(unsigned intnDelay)
  2. {
  3.       unsigned int i,j,k=0;
  4.       for ( i=0;i<nDelay;i++ )
  5.              for ( j=0;j<6144;j++ )
  6.                     k++;
  7. }
复制代码
// 初始化EMIF接口
  1. void InitEMIF()
  2. {
  3. #defineEMIFA_GCTL      0x01800000
  4. #defineEMIFA_CE1       0x01800004
  5. #defineEMIFA_CE0       0x01800008
  6. #defineEMIFA_CE2       0x01800010
  7. #defineEMIFA_CE3       0x01800014
  8. #defineEMIFA_SDRAMCTL  0x01800018
  9. #defineEMIFA_SDRAMTIM  0x0180001c
  10. #defineEMIFA_SDRAMEXT  0x01800020
  11. #defineEMIFA_CE1SECCTL  0x01800044
  12. #defineEMIFA_CE0SECCTL  0x01800048
  13. #defineEMIFA_CE2SECCTL  0x01800050
  14. #defineEMIFA_CE3SECCTL  0x01800054

  15.    *(int*)EMIFA_GCTL    = 0x00052078;
  16.    *(int*)EMIFA_CE0     = 0xffffffd3;
  17.    *(int*)EMIFA_CE1     = 0x73a28e01;
  18.    *(int*)EMIFA_CE2     = 0x22a28a22;
  19.    *(int*)EMIFA_CE3     = 0x22a28a42;
  20.    *(int *)EMIFA_SDRAMCTL = 0x57115000;
  21.    *(int *)EMIFA_SDRAMTIM = 0x0000081b;
  22.    *(int *)EMIFA_SDRAMEXT = 0x001faf4d;
  23.    *(int *)EMIFA_CE0SECCTL= 0x00000002;
  24.    *(int *)EMIFA_CE1SECCTL= 0x00000002;
  25.    *(int *)EMIFA_CE2SECCTL= 0x00000002;
  26.    *(int *)EMIFA_CE3SECCTL= 0x00000073;      

  27. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /1 下一条



手机版|小黑屋|与非网

GMT+8, 2024-6-2 23:31 , Processed in 0.105727 second(s), 15 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.