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

📄 led.c

📁 本测试程序是针对TMS320LF2407 EVM的性能测试而设计开发的。程序运行时将按顺序对数据RAM空间、程序代码空间、片上异步串行通讯、ADC-DAC联合检测、双向数字I/O口、通用I/O和评估板
💻 C
字号:

/*--------------------------------------------------------*/
/*  WQ21ST SOFTWARE	STUDIO.			                  	  */
/*--------------------------------------------------------*/
/* LED test for EVM320LF2407			            	  */
/*--------------------------------------------------------*/
/*						           	                      */
/*						                             	  */
/* DS1(red) IOPC0, DS2(yellow) IOPC1, DS3(green) POWER	  */
/*							                              */
/* filename:	led.c		    		            	  */
/* original:	07/25/2001   by: WQ			        	  */
/* last update: 08/28/2001   by: WQ					      */
/*--------------------------------------------------------*/


#include "led.h"
#include "ioreg.h"
#include "prot2407.h"

void led_setup(void );
  
volatile unsigned int leddata;



void led_ds5(unsigned int ds5_state)  /* XF/IOPC0 on DSP */
{
  unsigned int PCDataDir;

  PCDataDir = *(unsigned int *)PCDATDIR;    /* get contents of C register */



  if (ds5_state == LED_ON )	     /* turn on  ?? */
  {
     PCDataDir |=   IOPC0 ;
  }
  else
  {
     PCDataDir &=  (~IOPC0);
  }

  *(unsigned int *)PCDATDIR  = PCDataDir;


}

void led_ds6(unsigned int ds6_state)  /* BIO-/IOPC1 on DSP */
{

  unsigned int PCDataDir;

  PCDataDir = *(unsigned int *)PCDATDIR;    /* get contents of C register */


  if (ds6_state == LED_ON )	     /* turn on  ?? */
  {
     PCDataDir |=   IOPC1;
  }
  else
  {
     PCDataDir &=  (~IOPC1);
  }

  *(unsigned int *)PCDATDIR  = PCDataDir;

}



void led_ctr (unsigned int ctr_val)
{
  unsigned int ticker;

  for (ticker=0; ticker <= ctr_val; ticker++)
  {

    if (ticker == 0x0001)
    {
      led_ds5((unsigned int) LED_ON);
      
    }
    else
    {
      led_ds5((unsigned int) LED_OFF); 
      
    }

    if (ticker == 0x0002)
    {
      led_ds6((unsigned int) LED_ON);   
      
    }
    else
    {
      led_ds6((unsigned int) LED_OFF);
      
    }

    wait_ms( 500 );

  }
}


void led_blink(unsigned int blink_val)
{

  while (blink_val--)
  {
    led_ds5((unsigned int) LED_ON);    /* all leds on */
    led_ds6((unsigned int) LED_ON);

    wait_ms( 500 );

    led_ds5((unsigned int) LED_OFF);   /* all leds off */
    led_ds6((unsigned int) LED_OFF);

    wait_ms( 500 );
  }
}

unsigned int led2test(void)
{
  unsigned int led_err;
   
  led_err = 0;                         /* show no error */


  led_setup();

  led_blink((unsigned int) 5);         /* 5 on & off */
  led_ctr((unsigned int) 3);	      /* count 0-15, leaves leds off */

  return(led_err);
}

void led_setup(void )
{
  unsigned int	PCDataDir;
  unsigned int *PCDataDirPtr;
  unsigned int *MCRBPtr;
  unsigned int	MCRBData;

  PCDataDirPtr = (unsigned int *)PCDATDIR;
  MCRBPtr      = (unsigned int *)MCRB;


  MCRBData  = *MCRBPtr; 	     /* get contents of IO MUX	   */
  MCRBData &= ~(MCRB1  | MCRB0	);   /* turn on outputs C0 and C1 */

  *MCRBPtr = MCRBData;

  PCDataDir = *PCDataDirPtr;	/* get contents of C register */
  PCDataDir |= (C0DIR | C1DIR );     /* turn on outputs C0 and C1 */
  *PCDataDirPtr = PCDataDir;

}

⌨️ 快捷键说明

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