📄 global_types.h
字号:
//-------------------------------------------------------------------------------
// TEXAS INSTRUMENTS INCORPORATED PROPRIETARY INFORMATION
//
// Property of Texas Instruments
// For Unrestricted Internal Use Only
// Unauthorized reproduction and/or distribution is strictly prohibited.
// This product is protected under copyright law and trade secret law
// as an unpublished work.
// Created 2000, (C) Copyright 2000 Texas Instruments. All rights reserved.
//
//-------------------------------------------------------------------------------
#ifndef _GLOBAL_TYPES_H
#define _GLOBAL_TYPES_H
//-------------------------------------------------------------------------------
//
// TYPE DEFINITION
//
//-------------------------------------------------------------------------------
typedef unsigned char UWORD8;
typedef unsigned char UCHAR;
typedef signed char WORD8;
typedef unsigned short UWORD16;
typedef short WORD16;
typedef unsigned int BIT;
//int and long both fit to 32 bits
typedef unsigned long UWORD32;
typedef long WORD32;
//USE VOLATILE TO PREVENT OPTIMISATION FROM COMPILER
typedef volatile unsigned char REG_UWORD8;
typedef volatile signed char REG_WORD8;
typedef volatile unsigned short REG_UWORD16;
typedef volatile short REG_WORD16;
//int and long both fit to 32 bits
typedef volatile unsigned long REG_UWORD32;
typedef volatile long REG_WORD32;
typedef enum {FALSE= 0, TRUE=1 } BOOL;
#define NO FALSE
#define YES TRUE
#define ENABLE TRUE
#define DISABLE FALSE
#define HIGH_LEVEL TRUE
#define LOW_LEVEL FALSE
#define NOT_OK FALSE
#define IS_OK TRUE
//-------------------------------------------------------------------------------
//
// MACROS TO ACCESS REGISTERS
//
//-------------------------------------------------------------------------------
#define REG8(A) (*(REG_UWORD8*)(A))
#define REG16(A) (*(REG_UWORD16*)(A))
#define REG32(A) (*(REG_UWORD32*)(A))
//-------------------------------------------------------------------------------
//
// MACROS FOR BIT FIELD MANIPULATION
//
//-------------------------------------------------------------------------------
//==To be removed
#define SetBit(registre,masq) (registre|=masq)
#define ClearBit(registre,masq) (registre&=~masq)
#define TestBit(registre,masq) (registre&masq)
#define TestBitValue(registre,masq,value) ((registre&masq)==value)
//==To be removed
#define SetBitIndex(registre,index) (registre|=(1<<index))
#define ClearBitIndex(registre,index) (registre&=~(1<<index))
#define TestBitIndex(registre,index) (registre&(1<<index))
#define GetGroupBits(registre,position,number) ((registre & ((0xFFFFFFFF>>(32-number))<<position))>>position)
#define SetGroupBits(registre,position,number,value) registre&=~((0xFFFFFFFF>>(32-number))<<position);\
registre|=(value<<position)
#define GetGroupBits8(registre,position,number) (((registre) & ((0xFF>>(8-(number)))<<(position)))>>(position))
#define SetGroupBits8(registre,position,width,value)\
registre&=~( (0xFF>> (8-(width)) ) <<(position) );\
registre|=( (value&(0xFF>> (8-(width)) )) <<(position) )
#define GetGroupBits16(registre,position,number) (((registre) & ((0xFFFF>>(16-(number)))<<(position)))>>(position))
#define SetGroupBits16(registre,position,width,value)\
registre&=~((0xFFFF>>(16-(width)))<<(position));\
registre|=((value&(0xFFFF>>(16-(width))))<<(position))
#define GetGroupBits32(registre,position,number) GetGroupBits(registre,position,number)
#define SetGroupBits32(registre,position,width,value) SetGroupBits(registre,position,width,value)
#define SetField(Register,FieldName,Value) SetGroupBits(Register,FieldName ## _POS,FieldName ## _NUMB, Value)
#define GetField(Register,FieldName) GetGroupBits(Register,FieldName ## _POS,FieldName ## _NUMB)
//-------------------------------------------------------------------------------
//
// MACROS FOR CONDITIONAL STATEMENT
//
//-------------------------------------------------------------------------------
#define AND &&
#define OR ||
#define NOT !
#define EQU ==
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -