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

📄 sw_4p.c

📁 数字信号处理芯片的测试源文件
💻 C
字号:

/*--------------------------------------------------------*/
/*  WQ21ST SOFTWARE	STUDIO.			                  	  */
/*--------------------------------------------------------*/
/*  Switch Test for TMS320LF2407 EVM			          */
/*--------------------------------------------------------*/
/*  file name:	 sw_4p.c				                  */
/*  Started on:  08/11/2001    by: WQ			          */
/*  Last update: 08/28/2001    by: WQ				      */
/*--------------------------------------------------------*/


#include "sw_4p.h"
#include "prot2407.h"


unsigned int get_sw(void);


volatile unsigned int ti_swled_data;
volatile unsigned int ti_sw_data;


#define MIN_SW		    1
#define MAX_SW		    5
#define MAX_SW_SHIFT   0x0010
#define SWITCH_MASK    0x000F


void ti_swled_on( unsigned int led_num )
{
  unsigned int pattern;

  pattern = 0x0001;

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

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


void ti_swled_off( unsigned int led_num )
{
  unsigned int pattern;

  pattern = 0x0001;

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

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

}


unsigned int ti_read_sw(void)
{
  unsigned int sw_image;

  sw_image = 0x0000;
  ti_sw_data = 0xffff;

  while (sw_image != ti_sw_data)
  {

    wait_ms( 2 );

    sw_image = get_sw();

    wait_ms( 2 );

    ti_sw_data = get_sw(); 
        
 
  }

  return(ti_sw_data);
}



unsigned int wait_on_sw(unsigned int pattern)
{
  unsigned int switches;

  switches = (~pattern);


  while( switches != pattern )	  /* does sw == requested ? */
  {
       switches = ti_read_sw();
  }
}


unsigned int ti_sw_test(void)
{
  unsigned int sw_err, ctr, temp;
   
  sw_err = 0;                         /* show no error */



  for (ctr=MIN_SW; ctr < MAX_SW; ctr++) 	  /* turn all leds on */
  {
    ti_swled_on(ctr);
  }

  wait_on_sw(0x0000);                 /* make sure all switches are off */

  for (ctr=MIN_SW;ctr < MAX_SW;ctr++)		/* turn all leds off */
  {
    ti_swled_off(ctr);
  }

  ctr = 0x0001;
  temp = 1;                          /* set led # */

  while (ctr != MAX_SW_SHIFT)
  {
    wait_on_sw(ctr);		       /* wait for sw2-1-4 on only */
    ti_swled_on(temp);                 /* turn on new led */

    wait_on_sw((unsigned int)0);
    ti_swled_off(temp);                /* turn off previous led */

    ctr <<= 1;                         /* shift sw pattern */
    temp++;                            /* next led */
  }

  wait_on_sw((unsigned int)0);         /* all switches off */
  ti_swled_off((unsigned int)4);       /* turn off last led */

  return(sw_err);
}


unsigned int get_sw(void)
{
    unsigned int sw_image;


    INMAC( _TI_SW, ti_sw_data);
    sw_image = ti_sw_data;

    sw_image &= SWITCH_MASK;

    return(sw_image);
}

⌨️ 快捷键说明

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