LED0.c
上传用户:dahaojd
上传日期:2008-01-29
资源大小:14357k
文件大小:2k
源码类别:

DSP编程

开发平台:

C/C++

  1. #include "c6x.h"
  2. //#define PROGXOR 1
  3. #define LEDCTLR (*((unsigned char*)(0x90080017)))
  4. void InitEMIF(); // 初始化EMIF接口
  5. void Delay(unsigned int nDelay); // 软件延时子程序
  6. main()
  7. {
  8. int i,j;
  9. unsigned int uWork;
  10. while ( 1 )
  11. {
  12. LEDCTLR=0; // 点亮所有4个指示灯
  13. Delay(1024); // 等待片刻
  14. LEDCTLR=0x0f; // 关闭所有4个指示灯
  15. Delay(1024);
  16. #ifndef PROGXOR
  17. uWork=1; // 以下逐个点亮指示灯
  18. for ( i=0;i<4;i++ )
  19. {
  20. LEDCTLR&=((~uWork)&0x0ff);
  21. uWork<<=1;
  22. Delay(1024);
  23. }
  24. uWork=1; // 以下逐个关闭指示灯
  25. for ( i=0;i<4;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<4;i++ )
  36. {
  37. LEDCTLR^=uWork;
  38. uWork<<=1;
  39. Delay(1024);
  40. }
  41. }
  42. #endif
  43. }
  44. }
  45. // 软件延时子程序
  46. void Delay(unsigned int nDelay)
  47. {
  48. unsigned int i,j,k=0;
  49. for ( i=0;i<nDelay;i++ )
  50. for ( j=0;j<6144;j++ )
  51. k++;
  52. }
  53. // 初始化EMIF接口
  54. void InitEMIF()
  55. {
  56. #define EMIFA_GCTL       0x01800000
  57. #define EMIFA_CE1        0x01800004
  58. #define EMIFA_CE0        0x01800008
  59. #define EMIFA_CE2        0x01800010
  60. #define EMIFA_CE3        0x01800014
  61. #define EMIFA_SDRAMCTL   0x01800018
  62. #define EMIFA_SDRAMTIM   0x0180001c
  63. #define EMIFA_SDRAMEXT   0x01800020
  64. #define EMIFA_CE1SECCTL  0x01800044
  65. #define EMIFA_CE0SECCTL  0x01800048
  66. #define EMIFA_CE2SECCTL  0x01800050
  67. #define EMIFA_CE3SECCTL  0x01800054
  68.     /* EMIFA */
  69.     *(int *)EMIFA_GCTL     = 0x00052078;
  70.     *(int *)EMIFA_CE0      = 0xffffffd3;  /* CE0 SDRAM                     */
  71.     *(int *)EMIFA_CE1      = 0x73a28e01;  /* CE1 Flash + CPLD              */
  72.     *(int *)EMIFA_CE2      = 0x22a28a22;  /* CE2 子卡 32-bit 异步接口      */
  73.     *(int *)EMIFA_CE3      = 0x22a28a42;  /* CE3 子卡 32-bit 同步接口      */
  74.     *(int *)EMIFA_SDRAMCTL = 0x57115000;  /* SDRAM 控制                    */
  75.     *(int *)EMIFA_SDRAMTIM = 0x0000081b;  /* SDRAM 刷新时序                */
  76.     *(int *)EMIFA_SDRAMEXT = 0x001faf4d;  /* SDRAM 扩展控制                */
  77.     *(int *)EMIFA_CE0SECCTL= 0x00000002;  /* CE0 第二控制寄存器            */
  78.     *(int *)EMIFA_CE1SECCTL= 0x00000002;  /* CE1 第二控制寄存器            */
  79.     *(int *)EMIFA_CE2SECCTL= 0x00000002;  /* CE2 第二控制寄存器            */
  80.     *(int *)EMIFA_CE3SECCTL= 0x00000073;  /* CE3 第二控制寄存器            */
  81. }