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

📄 led.c

📁 DSP2407开发板 指示灯测试程序 采用的是向I/O空间读写数据的方式
💻 C
字号:

/*--------------------------------------------------------*/
/*  SPECTRUM DIGITAL INC.				                  */
/*--------------------------------------------------------*/
/* LED test for EVM320LF2407				              */
/*							                              */
/*							                              */
/* leds DS4-DS7 					                      */
/*							                              */
/* filename:	led._4p.c				                  */
/* original:	03/14/1997   by: mls			          */
/* last update: 08/20/2005   by: lyp for 2407		      */
/*--------------------------------------------------------*/


#include "led.h"
#include "lf2407regs.h"


volatile unsigned int ti_led_data;
#define MS_TIME_LOOP   0x0385
unsigned int wait_ms( volatile unsigned int delay_val )  //延时1ms程序
{
    unsigned int i;
    unsigned int ms_ctr;
    for ( i = 0; i < delay_val; i++ )
    {
	ms_ctr = MS_TIME_LOOP;

	while ( ms_ctr )
	{
	    ms_ctr--;
	}
    }

    return( delay_val );
}

void initsys()  //系统初始化
{
  asm(" setc SXM ");
  asm(" clrc OVM ");
  asm(" clrc CNF ");

  *SCSR1=0x86fe;  //2倍频,30MHZ
  *WDCR =0x0e8;
  *IMR  =0x000f;
  *IFR  =0xffff;
  //*WSGR =0x00;

}  

void ti_led_on( unsigned int led_num )  //打开DS4,DS5,DS6,DS7
{
  unsigned int pattern;

  pattern = 0x0001;

  while (--led_num)
  {
    pattern <<= 1;        /* move bit over */
  }
  ti_led_data |= pattern;

  OUTMAC( _TI_LED, ti_led_data);     /* turn on the led */
}


void ti_led_off( unsigned int led_num )//关闭DS4,DS5,DS6,DS7
{
  unsigned int pattern;

  pattern = 0x0001;

  while (--led_num)
  {
    pattern <<= 1;        /* move bit over */
  }
  ti_led_data &= (~pattern);

  OUTMAC( _TI_LED, ti_led_data);     /* turn off the led */

}


void ti_led_ctr (unsigned int ctr_val) //让4个led闪烁
{
  unsigned int ticker, ctr;

  for (ticker=0; ticker < (ctr_val+1); ticker++)
  {
    for (ctr=1; ctr <= 4; ctr++)
    {
      ti_led_on(ctr);
      wait_ms( 1000 );
      ti_led_off(ctr);
      wait_ms( 1000 );
    }

    wait_ms( 1000 );
  }
}

void interrupt nothing()
{return;}


main()
{
  initsys();
 do
 {
 ti_led_ctr(100);
 wait_ms(1000);
 }while(1);

}

⌨️ 快捷键说明

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