📄 plf_led.h
字号:
#ifndef _PLF_LED_H_
#define _PLF_LED_H_
//==========================================================================
//
// plf_led.h
//
// platform LED support
//
//
//==========================================================================
// -------------------------------------------
//####ECOSGPLCOPYRIGHTEND####
//==========================================================================
//#####DESCRIPTIONBEGIN####
//
// Author(s): wanglei
// Date: 2007-09-20
// Purpose: on-platform led supporting .
//
//####DESCRIPTIONEND####
//========================================================================
#include <cyg/infra/cyg_type.h>
#include <cyg/hal/hal_arch.h>
#include <cyg/hal/hal_io.h>
//---------------------------------------------------------------------------
// function prototypes
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//
// Function: LED_INIT
//
// Description: LED initialization
//
// Parameters: none
//
// Returns: none
//
// State: tested
//---------------------------------------------------------------------------
#define LED_INIT() \
CYG_MACRO_START \
cyg_uint16 _16bit_val; \
cyg_uint8 _8bit_val; \
HAL_READ_UINT16(&MCF5484_DEVS->GPIO.par_pcibg, _16bit_val); \
HAL_WRITE_UINT16(&MCF5484_DEVS->GPIO.par_pcibg, (_16bit_val& 0xfc03)); \
HAL_READ_UINT8(&MCF5484_DEVS->GPIO.pddr_pcibg, _8bit_val); \
HAL_WRITE_UINT8(&MCF5484_DEVS->GPIO.pddr_pcibg, (_8bit_val| MCF5484_GPIO_PDDR_PCIBG_PDDRPCIBG1 \
|MCF5484_GPIO_PDDR_PCIBG_PDDRPCIBG2 \
|MCF5484_GPIO_PDDR_PCIBG_PDDRPCIBG3 \
|MCF5484_GPIO_PDDR_PCIBG_PDDRPCIBG4)); \
HAL_READ_UINT16(&MCF5484_DEVS->GPIO.par_pcibr, _16bit_val); \
HAL_WRITE_UINT16(&MCF5484_DEVS->GPIO.par_pcibr, (_16bit_val& 0xff0f)); \
HAL_READ_UINT8(&MCF5484_DEVS->GPIO.pddr_pcibr, _8bit_val); \
HAL_WRITE_UINT8(&MCF5484_DEVS->GPIO.pddr_pcibr, (_8bit_val| 0x0C)); \
CYG_MACRO_END
//---------------------------------------------------------------------------
//
// Function: LED_ON
//
// Description: Set LED 1,2 ON
//
// Parameters: led_index: index of led that is to be set
//
// Returns: none
//
// State: tested
//---------------------------------------------------------------------------
#define LED_ON( _Index_ ) \
CYG_MACRO_START \
cyg_uint8 _led_mask; \
cyg_uint8 _8bit_val; \
_led_mask = (0x01 << (_Index_)); \
HAL_READ_UINT8(&MCF5484_DEVS->GPIO.ppdsdr_pcibg, _8bit_val); \
_8bit_val = (_8bit_val | _led_mask); \
HAL_WRITE_UINT8(&MCF5484_DEVS->GPIO.podr_pcibg, _8bit_val); \
CYG_MACRO_END
//---------------------------------------------------------------------------
//
// Function: LED_OFF
//
// Description: Set LED 1,2 OFF
//
// Parameters: none
//
// Returns: none
//
// State: tested
//---------------------------------------------------------------------------
#define LED_OFF( _Index_ ) \
CYG_MACRO_START \
cyg_uint8 _led_mask; \
cyg_uint8 _8bit_val; \
_led_mask = (0x01 << (_Index_)); \
HAL_READ_UINT8(&MCF5484_DEVS->GPIO.ppdsdr_pcibg, _8bit_val); \
_8bit_val = (_8bit_val & (~_led_mask)); \
HAL_WRITE_UINT8(&MCF5484_DEVS->GPIO.podr_pcibg, _8bit_val); \
CYG_MACRO_END
//---------------------------------------------------------------------------
// Function: LED_SET_VAL
//
// Description: Set LED
//
// Parameters: none
//
// Returns: none
//
// State: tested
//---------------------------------------------------------------------------
#define LED_SET_VAL( _bLedVal_p_ ) \
CYG_MACRO_START \
cyg_uint8 _led_mask; \
cyg_uint8 _8bit_val; \
_led_mask = (_bLedVal_p_ << 1); \
HAL_READ_UINT8(&MCF5484_DEVS->GPIO.ppdsdr_pcibg, _8bit_val); \
if(_8bit_val & 0x01E) \
{ \
_8bit_val = (_8bit_val & (~0x001E) ); \
HAL_WRITE_UINT8(&MCF5484_DEVS->GPIO.podr_pcibg, _8bit_val); \
} \
_8bit_val = (_8bit_val | _led_mask); \
HAL_WRITE_UINT8(&MCF5484_DEVS->GPIO.podr_pcibg, _8bit_val); \
if(_bLedVal_p_ > 15) \
{ \
HAL_READ_UINT8(&MCF5484_DEVS->GPIO.podr_pcibr, _8bit_val); \
HAL_WRITE_UINT8(&MCF5484_DEVS->GPIO.podr_pcibr, (_8bit_val& 0xfb)); \
} \
CYG_MACRO_END
//---------------------------------------------------------------------------
//
// Function: LED_SET_RUN
//
// Description: Set "run" LED
//
// Parameters: none
//
// Returns: none
//
// State: tested
//---------------------------------------------------------------------------
#define LED_SET_RUN() \
CYG_MACRO_START \
cyg_uint8 _8bit_val; \
HAL_READ_UINT8(&MCF5484_DEVS->GPIO.podr_pcibr, _8bit_val); \
HAL_WRITE_UINT8(&MCF5484_DEVS->GPIO.podr_pcibr, (_8bit_val& 0xfb)); \
CYG_MACRO_END
//---------------------------------------------------------------------------
//
// Function: LED_CLR_RUN
//
// Description: Set "run" LED
//
// Parameters: none
//
// Returns: none
//
// State: tested
//---------------------------------------------------------------------------
#define LED_CLR_RUN() \
CYG_MACRO_START \
cyg_uint8 _8bit_val; \
HAL_READ_UINT8(&MCF5484_DEVS->GPIO.podr_pcibr, _8bit_val); \
HAL_WRITE_UINT8(&MCF5484_DEVS->GPIO.podr_pcibr, (_8bit_val| 0x04)); \
CYG_MACRO_END
//---------------------------------------------------------------------------
//
// Function: LED_SET_ERR
//
// Description: Set "error" LED
//
// Parameters: none
//
// Returns: none
//
// State: tested
//---------------------------------------------------------------------------
#define LED_SET_ERR() \
CYG_MACRO_START \
cyg_uint8 _8bit_val; \
HAL_READ_UINT8(&MCF5484_DEVS->GPIO.podr_pcibr, _8bit_val); \
HAL_WRITE_UINT8(&MCF5484_DEVS->GPIO.podr_pcibr, (_8bit_val& 0xf7)); \
CYG_MACRO_END
//---------------------------------------------------------------------------
//
// Function: LED_CLR_ERR
//
// Description: clear "error" LED
//
// Parameters: none
//
// Returns: none
//
// State: tested
//---------------------------------------------------------------------------
#define LED_CLR_ERR() \
CYG_MACRO_START \
cyg_uint8 _8bit_val; \
HAL_READ_UINT8(&MCF5484_DEVS->GPIO.podr_pcibr, _8bit_val); \
HAL_WRITE_UINT8(&MCF5484_DEVS->GPIO.podr_pcibr, (_8bit_val| 0x08)); \
CYG_MACRO_END
#endif //_PLF_LED_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -