?? led.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 + -