📄 generic.h
字号:
#ifndef _GENERIC_H_
#define _GENERIC_H_
#include <avr/io.h>
#include <avr/eeprom.h>
#include <avr/wdt.h>
#include <avr/interrupt.h>
#include <avr/sleep.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#define BM(n) (1 << (n))
#define NULL 0
#define nop() asm("nop")
typedef enum _BOOL { FALSE = 0, TRUE = 1 } BOOL;
typedef unsigned char BYTE; // 8-bit
typedef unsigned int WORD; // 16-bit
typedef signed int SWORD;
typedef unsigned long DWORD; // 32-bit
typedef union _BYTE_VAL
{
struct
{
unsigned int b0:1;
unsigned int b1:1;
unsigned int b2:1;
unsigned int b3:1;
unsigned int b4:1;
unsigned int b5:1;
unsigned int b6:1;
unsigned int b7:1;
} bits;
BYTE Val;
} BYTE_VAL;
typedef union _WORD_VAL
{
WORD Val;
struct
{
BYTE LSB;
BYTE MSB;
} byte;
BYTE v[2];
} WORD_VAL;
#define LSB(a) ((a).v[0])
#define MSB(a) ((a).v[1])
typedef union _DWORD_VAL
{
DWORD Val;
struct
{
BYTE LOLSB;
BYTE LOMSB;
BYTE HILSB;
BYTE HIMSB;
} byte;
struct
{
WORD LSW;
WORD MSW;
} word;
BYTE v[4];
} DWORD_VAL;
#define LOWER_LSB(a) ((a).v[0])
#define LOWER_MSB(a) ((a).v[1])
#define UPPER_LSB(a) ((a).v[2])
#define UPPER_MSB(a) ((a).v[3])
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -