📄 define.h
字号:
/*
*
* 文件名:define.h
*
* 功能描述:为了工程的平台无关性而从新定义的一些数据类型
* 以及包含进来工程中要用到的较普遍的头文件
*
* author: 陈思 2007-12-24
*
*/
#ifndef DEFINE_H
#define DEFINE_H
#include <iom88v.h>
#include <macros.h>
#include <string.h>
// SPI 模式下AVR的一些相关IO口的定义
#define PORT_SPI PORTB
#define SS PB2
#define MOSI PB3
#define MISO PB4
#define SCLK PB5
#define DDR_SPI DDRB
#define DD_SS DDB2
#define DD_MOSI DDB3
#define DD_MISO DDB4
#define DD_SCLK DDB5
#define GIE 7
// SPI 打开和关闭
#define SPI_ON() (PORT_SPI &= ~(1<<SS))
#define SPI_OFF() (PORT_SPI |= (1<<SS))
// INT0 使能和关闭
#define INT0_DISABLE() (EIMSK &= ~(1<<INT0))
#define INT0_ENABLE() (EIMSK |= (1<<INT0))
#define NOP() asm("nop")
// 常用数据类型的定义
typedef unsigned char BOOL;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef unsigned long long QWORD;
typedef unsigned char UINT8;
typedef unsigned short UINT16;
typedef unsigned long UINT32;
typedef unsigned long long UINT64;
typedef signed char INT8;
typedef signed short INT16;
typedef signed long INT32;
typedef signed long long INT64;
// Common values
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
#ifndef NULL
#define NULL 0
#endif
// MCU串口状态
enum uSART_FLAG {
USART_IDLE,
USART_SEND,
USART_RECIEVE,
USART_RECIEVE_FINISH
};
typedef enum uSART_FLAG USART_FLAG;
// cc1100 状态机
enum chipState {
IDLE,
SEND,
RECIEVE,
SLEEP,
TX_UNDERFLOW,
RX_OVERFLOW
};
typedef enum chipState ChipState;
// 出错状态
enum erroState {
PACKET_TIMEOUT,
CRC_ERRO,
ACK_TIMEOUT,
PACKET_ERRO,
NOT_MATCH,
NO_ERRO
};
typedef enum erroState ErroState;
// typedef RETURN ErroState;
//数据报类型枚举变量
enum packetType {
FIX_LENGTH,
DEFINED_LENGTH
};
typedef enum packetType PacketType;
// 发送方式枚举变量
enum sendtype {
NO_ADDRESS,
UNICAST, // 在接收端有地址检测
BROADCAST // 没有地址检测(0x00为广播地址)
};
typedef enum sendtype SendType;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -