Набор часто используемых макросов, включается обычно во все файлы проекта, через “common.h”
#ifndef KR_MACROS_INCLUDED #define KR_MACROS_INCLUDED #ifndef bool typedef unsigned char bool; #endif #ifndef true #define true (1) #define false (!true) #endif #define BIT_CLR(port,bit) ( (port) &= ~(1<<(bit)) ) #define BIT_SET(port,bit) ( (port) |= (1<<(bit)) ) #define BIT_CPL(port,bit) ( (port) ^= (1<<(bit)) ) #define BIT_TST(port,bit) ( (port) & (1<<(bit)) ) #define CLEAR_BITS(port,bits) ( (port) &= ~(bits) ) #define SET_BITS(port,bits) ( (port) |= (bits) ) #define TEST_BITS(port,bits) ( (port) & (bits) ) #define HIWORD(val) ((val)>>16) #define LOWORD(val) ((val) & 0xFFFF) #define HIBYTE(val) ((val) >> 8) #define LOBYTE(val) ((val) & 0xFF) #define COUNTOF(x) (sizeof(x)/sizeof((x)[0])) enum STATUS_T { STATUS_OK = 0, STATUS_ERROR = 1 }; #define CR '\r' #define LF '\n' #define CRLF "\r\n" #endif