led4.c

来自「TMS320LF2407键盘IO程序学习.」· C语言 代码 · 共 94 行

C
94
字号
/*--------------------------------------------------------*/
/*  WQ21ST SOFTWARE	STUDIO.			                  	  */
/*--------------------------------------------------------*/
/* LED test for EVM320LF2407				              */
/*							                              */
/*							                              */
/* leds DS4-DS7 					                      */
/*							                              */
/* filename:	led._4p.c				                  */
/* original:	08/14/2001   by: WQ 			          */
/* last update: 08/28/2001   by: WQ					      */
/*--------------------------------------------------------*/
#include "led4.h"
#include "prot2407.h"
#define MS_TIME_LOOP   0x500
volatile unsigned int ti_led_data=0x0000;

void ti_led_on( unsigned int led_num )
{
  unsigned int pattern;
  pattern = led_num;
  ti_led_data |= pattern;
  OUTMAC( _TI_LED, ti_led_data);     /* turn on the led */
}

void ti_led_off( unsigned int led_num )
{
  volatile unsigned int pattern;
  ti_led_data =0x00;
  OUTMAC( _TI_LED, ti_led_data);     /* turn off the led */
}

void ti_led_ctr (unsigned int ctr_val)
{
  unsigned int ticker, ctr;
  for (ticker=0; ticker < (ctr_val+1); ticker++)
  {
    for (ctr=1; ctr <= 4; ctr++)
    {
      ti_led_on(ctr);
      wait_ms( 250 );
      ti_led_off(ctr);
      wait_ms( 250 );
    }
    wait_ms( 250 );
  }
}


void ti_led_blink(unsigned int ti_blink_val)
{
  unsigned int ctr;
  while (ti_blink_val--)
  {
    for (ctr=1; ctr <= 4; ctr++)      /* turn all leds on */
    {
      ti_led_on(ctr);
    }
    wait_ms( 250 );
    for (ctr=1; ctr <= 4; ctr++)      /* turn all leds off */
    {
      ti_led_off(ctr);
    }
    wait_ms( 250 );
  }
}


unsigned int ti_led_test(void)
{
  unsigned int led_err;
  led_err = 0;                         /* show no error */
  ti_led_blink((unsigned int) 5);      /* 5 on & off */
  ti_led_ctr((unsigned int) 2);        /* 1-8 twice */
  return(led_err);
}

unsigned int wait_ms( volatile unsigned int delay_val )
{
    unsigned int i;
/*    unsigned int ms_ctr;  */
    int ms_ctr;
    for ( i = 0; i < delay_val; i++ )
    {
	ms_ctr = MS_TIME_LOOP;
	while ( ms_ctr )
	{
	    ms_ctr--;
	}
    }
    return( delay_val );
}

⌨️ 快捷键说明

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