optical/NxBase/funcs.h

120 lines
2.3 KiB
C
Raw Normal View History

2025-09-04 01:45:08 +00:00
#ifndef __FUNCS_H__
#define __FUNCS_H__
#include "config.h"
//------------------------------------------------------------
#define ALM_LIT_STA_OFF 0 // <20>ر<EFBFBD>״̬
#define ALM_LIT_STA_ON 1 // <20><><EFBFBD><EFBFBD>״̬
#define ALM_LIT_OFF 0 // <20>ص<EFBFBD>
#define ALM_LIT_ON 1 // <20><><EFBFBD><EFBFBD>
#define ALM_LIT_FLASH 2 // <20><>˸
#define ALM_LIT_FLASH_FAST 3 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˸
#define ALM_LIT_FLASH_SLOW 4 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˸
#define FLASH_LIGHT(flag, sta, onfunc, offfunc) do \
{\
if (flag == ALM_LIT_OFF)\
{\
if (sta != ALM_LIT_STA_OFF)\
{\
sta = ALM_LIT_STA_OFF;\
offfunc();\
}\
}\
else if (flag == ALM_LIT_ON)\
{\
if (sta != ALM_LIT_STA_ON)\
{\
sta = ALM_LIT_STA_ON;\
onfunc();\
}\
}\
else if (flag == ALM_LIT_FLASH || flag == ALM_LIT_FLASH_FAST || flag == ALM_LIT_FLASH_SLOW)\
{\
if (sta == ALM_LIT_STA_ON)\
{\
sta = ALM_LIT_STA_OFF;\
offfunc();\
}\
else if (sta == ALM_LIT_STA_OFF)\
{\
sta = ALM_LIT_STA_ON;\
onfunc();\
}\
else \
{\
sta = ALM_LIT_STA_OFF;\
}\
}\
else \
{\
flag = ALM_LIT_OFF;\
}\
}while(0)
//------------------------------------------------------------
#define OUTPUT_FUNCS(Name, LABEL) \
void Set##Name##On(void) \
{ \
LL_GPIO_ResetOutputPin(LABEL##_GPIO_Port, LABEL##_Pin); \
} \
void Set##Name##Off(void)\
{ \
LL_GPIO_SetOutputPin(LABEL##_GPIO_Port, LABEL##_Pin); \
} \
void Set##Name##Toggle(void) \
{ \
LL_GPIO_TogglePin(LABEL##_GPIO_Port, LABEL##_Pin); \
} \
u8 Get##Name##Status(void) \
{ \
return LL_GPIO_IsOutputPinSet(LABEL##_GPIO_Port, LABEL##_Pin); \
} \
//------------------------------------------------------------
#define INPUT_FUNCS(Name, LABEL) \
u8 Get##Name##Status(void)\
{\
return LL_GPIO_IsInputPinSet(LABEL##_GPIO_Port, LABEL##_Pin);\
}
//------------------------------------------------------------
//------------------------------------------------------------
#define OUTPUT_NULL_FUNCS(Name, LABEL) \
void Set##Name##On(void) \
{ \
SetOutputNull(); \
} \
void Set##Name##Off(void)\
{ \
SetOutputNull(); \
} \
void Set##Name##Toggle(void) \
{ \
SetOutputNull(); \
} \
u8 Get##Name##Status(void) \
{ \
return GetInputNullOff(); \
} \
//------------------------------------------------------------
#define INPUT_NULL_FUNCS(Name, LABEL) \
u8 Get##Name##Status(void)\
{\
return GetInputNullOff(); \
}
//------------------------------------------------------------
#endif