📄 led.c
字号:
/****************************************************************************
File : led.c
点灯模块
****************************************************************************/
#include <vxworks.h>
#if (CPU == PPC860 )
#include "ads852.h"
#include "m852reg.h"
#include "m852mask.h"
#else
#include "ads8260.h"
#include "m8260reg.h"
#include "m8260mask.h"
#endif
#include "base.h"
#include "led.h"
#if ( HARDWARE_VERSION == 8 )
U32 record_led_map [] =
{ // 0 1 2 3 4 5 6 7
PD16, PD17, PD18, PD19, PD20, PD21 , PD22,
};
#elif ( HARDWARE_VERSION == 16 )
U32 record_led_map [] =
{ // 0 1 2 3 4 5 6 7
PD4 , PD13 , PD5 , PD16 , PD6 , PD17 , PD7 , PD18 ,
PD9 , PD19 , PD10 , PD20 , PD11, PD21 , PD12, PD22
};
#endif
// Function : init_app_led
// Decription : config led control pin
void init_app_led ( void )
{
#if ( HARDWARE_VERSION == 2 )
*EPLD_LED_REG = 0x00 ;
#else
U32 immBase = vxImmrGet();
U32 pin = 0 ;
int i = 0 ;
for ( i=0 ; i<MAX_LED_NUM ; i++ )
{
pin |= record_led_map[i] ;
}
*M8260_PDODR(immBase) &= ~pin ;
*M8260_PDPAR(immBase) &= ~pin;
*M8260_PDDIR(immBase) |= pin;
/*Do not need to set PDSO register*/
*M8260_PDDAT(immBase) &= ~pin;
#endif
}
// Function : app_led_off
// Decription : turn off one led
void app_led_off( int led )
{
U32 immBase = vxImmrGet();
U32 pin ;
if( led >= MAX_LED_NUM || led < 0 )
return ;
#if ( CPU == PPC860 )
pin = LED1_MASK << led ;
*EPLD_LED_REG &= ~pin ;
#else
pin = record_led_map[led] ;
*M8260_PDDAT(immBase) &= ~pin ;
#endif
}
// Function : app_led_on
// Decription : turn on one led
void app_led_on( int led )
{
U32 immBase = vxImmrGet();
U32 pin ;
if( led >= MAX_LED_NUM || led < 0 )
return ;
#if ( CPU == PPC860 )
pin = LED1_MASK << led ;
*EPLD_LED_REG |= pin ;
#else
pin = record_led_map[led] ;
*M8260_PDDAT(immBase) |= pin ;
#endif
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -