📄 common.h
字号:
/*******************************************************************************************************
* Compiler: WINAVR
* Target platform: Atmega128 and Chipcon CCxxx0
* Author: Wang Chaoyan IBSS of NUAA
*******************************************************************************************************
* Revision history: 2007-03-18
******************************************************************************************************/
#ifndef COMMON_H
#define COMMON_H
/*******************************************************************************************************
*******************************************************************************************************
************************** Commonly used types ****************************
*******************************************************************************************************
*******************************************************************************************************/
//-------------------------------------------------------------------------------------------------------
// Dynamic function pointer
typedef void (*VFPTR)(void);
//-------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------
// Common data types
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
//-------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------
// Useful stuff
#define NOP() asm volatile ("nop\n\t" ::)
#define BM(n) (1 << (n))
#define BF(x,b,s) (((x) & (b)) >> (s))
#define MIN(n,m) (((n) < (m)) ? (n) : (m))
#define MAX(n,m) (((n) < (m)) ? (m) : (n))
#define ABS(n) ((n < 0) ? -(n) : (n))
//-------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------
// RF_SETTINGS is a data structure which contains all relevant CCxxx0 registers
typedef struct S_RF_SETTINGS{
BYTE FSCTRL1; // Frequency synthesizer control.
BYTE FSCTRL0; // Frequency synthesizer control.
BYTE FREQ2; // Frequency control word, high byte.
BYTE FREQ1; // Frequency control word, middle byte.
BYTE FREQ0; // Frequency control word, low byte.
BYTE MDMCFG4; // Modem configuration.
BYTE MDMCFG3; // Modem configuration.
BYTE MDMCFG2; // Modem configuration.
BYTE MDMCFG1; // Modem configuration.
BYTE MDMCFG0; // Modem configuration.
BYTE CHANNR; // Channel number.
BYTE DEVIATN; // Modem deviation setting (when FSK modulation is enabled).
BYTE FREND1; // Front end RX configuration.
BYTE FREND0; // Front end RX configuration.
BYTE MCSM0; // Main Radio Control State Machine configuration.
BYTE FOCCFG; // Frequency Offset Compensation Configuration.
BYTE BSCFG; // Bit synchronization Configuration.
BYTE AGCCTRL2; // AGC control.
BYTE AGCCTRL1; // AGC control.
BYTE AGCCTRL0; // AGC control.
BYTE FSCAL3; // Frequency synthesizer calibration.
BYTE FSCAL2; // Frequency synthesizer calibration.
BYTE FSCAL1; // Frequency synthesizer calibration.
BYTE FSCAL0; // Frequency synthesizer calibration.
BYTE FSTEST; // Frequency synthesizer calibration control
BYTE TEST2; // Various test settings.
BYTE TEST1; // Various test settings.
BYTE TEST0; // Various test settings.
BYTE IOCFG2; // GDO2 output pin configuration
BYTE IOCFG0; // GDO0 output pin configuration
BYTE PKTCTRL1; // Packet automation control.
BYTE PKTCTRL0; // Packet automation control.
BYTE ADDR; // Device address.
BYTE PKTLEN; // Packet length.
} RF_SETTINGS;
//-------------------------------------------------------------------------------------------------------
#endif// COMMON_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -