📄 std.h
字号:
#ifndef _STD_INC_H_
#define _STD_INC_H_
/*#include <reg51.h>*/
#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include "ioctrl.h"
#define Un_Sizet_1 unsigned char
#define Un_Sizet_2 unsigned short
#define Un_Sizet_4 unsigned long int
#define Sizet_1 char
#define Sizet_2 short
#define Sizet_4 long int
#define Bool unsigned char
#define Word Un_Sizet_2
#define Dword Un_Sizet_4
#define Char Un_Sizet_1
#define Byte Sizet_1
#define Short Sizet_2
#define Long Sizet_4
#define Void void
#define _TRUE_ 1
#define _FALSE_ 0
#undef _STDIO_ // 使用标准IO
#define tdSetValBit(Val, ucBit) Val |= (ucBit)
#define tdClearValBit(Val, ucBit) Val &= ~(ucBit)
#define tdTestValBitTrue(Val, ucBit) (Val & (ucBit))
#define tdTestValBitFalse(Val, ucBit) (!(Val & (ucBit)))
#ifdef STDIO
#define DbPrintf(str) printf(str)
#define DbPrintf1(str0,str1) printf(str0,str1)
#define DbPrintf2(str0,str1,str2) printf(str0,str1,str2)
#else
#define DbPrintf(str)
#define DbPrintf1(str0,str1)
#define DbPrintf2(str0,str1,str2)
#endif
typedef struct tagFlag
{
Un_Sizet_1 bit0:1;
Un_Sizet_1 bit1:1;
Un_Sizet_1 bit2:1;
Un_Sizet_1 bit3:1;
Un_Sizet_1 bit4:1;
Un_Sizet_1 bit5:1;
Un_Sizet_1 bit6:1;
Un_Sizet_1 bit7:1;
}Flag;
Flag flag0;
/******** *************/
typedef struct tagKeyboardDataStruct
{
Word wFirstDelay;
Word wRepeatDelay;
Dword dwLastTick;
Byte ucLastKey;
}KeyboardDataStruct;
extern KeyboardDataStruct t_KeyboardData;
/******** *************/
typedef struct tagKeyInfo
{
Bool bFastRepeatKeyEnable :1; //config
Bool bSlowRepeatKeyEnable :1; //config
Bool bKeyStatusUpEnable :1; //config
Bool bRemoteKeyDown :1; //status
Bool bKeyboardDown :1; //status
Bool bRepeatKeyDown :1; //status
Un_Sizet_1 reserved :2;
} KeyInfo;
extern KeyInfo g_KeyInfo;
/******** *************/
typedef struct tagG_Data
{
Byte ucIntIndex; // for test, interrupt index
}G_Data;
extern G_Data g_Data;
#define bTickGet flag0.bit0
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -