网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> DSP >> 代码示例 >> TI DSP代码示例 >> C2000 >> 文章正文
  TMS320C243三角波产生程序(直接用)         ★★★ 【字体:
TMS320C243三角波产生程序(直接用)
作者:61IC    文章来源:本站原创    点击数:    更新时间:2007-1-16    


/*--------------------------------------------------------*/
/*  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);
}

               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号