//------------------------------------------------------------------------------------- unsigned char IfInterTimeOK(tagInterTime * ptime) { if(ptime->ucDelay == 0) return 0; ptime->ucCount = (ptime->ucCount) + 1; if(ptime->ucCount >= ptime->ucDelay) { ptime->ucCount = 0; return 1; } return 0; } //----------------------------------------------------------------- typedef struct { unsigned char ucDelay, ucCount; }tagInterTime; // Control the interface control time unsigned char IfInterTimeOK(tagInterTime * ptime);// 1:Action OK //--------------------------------------------------------------------------------- #define __INTERTIME_DECL(x, y) SUBLIB_EXT tagInterTime g_it##x; #define __IT_START(x, y) (g_it##x##.ucDelay = y, g_it##x##.ucCount = y) #define __IT_STOP(x, y) g_it##x##.ucDelay = 0 #define __IT_OK(x, y) IfInterTimeOK(&g_it##x) //------------------------------------------------------------------------------ #define IT_DECL(x) __INTERTIME_DECL(x) #define IT_START(x) __IT_START(x) #define IT_STOP(x) __IT_STOP(x) #define IT_OK(x) __IT_OK(x)
#define AAA A, 25
下面这是用法,不知道是什么意思? IT_START(AAA); if(IT_OK(AAA)) IT_START(AAA); IT_STOP(AAA); 忘c语言高手指教一下
|