⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rd_useavrportbit.h

📁 编译通过下载后
💻 H
字号:
#ifndef _USE_AVR_PORT_BIT_H_
#define _USE_AVR_PORT_BIT_H_
/***********************************************************
*   声明库说明:AVR位操作通用支持库                        *
*  [支 持 库]                                              *
*   库名称:    RD_UseBITs.h                               *
*   需要版本:  v1.00 &abv                                 *
*   支持库说明:系统位段操作函数库                         *
*                                                          *
*   库名称:    RD_MacroAndConst.h                         *
*   需要版本:  v0.01 &abv                                 *
*   支持库说明:系统常用宏定义库                           *
*   版本:      v1.01                                      *
* -------------------------------------------------------- *
*  [版本历史]                                              *
*     前身版本  在该版本最终生成之前,经历过针对各种芯片的 *
*               专用版本,这些版本提供了针对PORT的位操作和 *
*               部分PIN、DDR的位操作。                     *
*        v1.00  该版本支持几乎所有的芯片,具有完善的宏定义 *
*               系统,相对前身版本最小的资源占用。增加了对 *
*               各种常用变量用户类型的定义。               *
*        v1.01  增加了关于布尔型变量类型的宏定义。         *
*               修改了头文件的位段映射模式。通过统一的头文 *
*               件RD_UseBITs.h来实现位段类型的定义和声明。 *
* -------------------------------------------------------- *
*  [使用说明]                                              *
*            1、在使用该头文件之前先包含您需要使用的芯片   *
*               的官方头文件,例如:# include <iom8v.h>    *
*            2、如果你不是ICC的用户,请在使用该头文件之前  *
*               先绑定各个端口的地址到相应的宏定义上,例如 *
*               # define PORTA (*((volatile char *)0x3b))  *
*            3、如果你使用的是非ICC系统,请在调用文件之前  *
*               定义宏 _USE_NON_ICC_IDE。                  *
*            4、可以使用SET_BITS_FORMAT(变量)把任意变量拆  *
*               成位定义的模式。                           *
***********************************************************/

/********************
* 头 文 件 配 置 区 *
********************/
# include "RD_UseBITs.h"
# include "RD_MacroAndConst.h"

/********************
*   系 统 宏 定 义  *
********************/

/*------------------*
*   常 数 宏 定 义  *
*------------------*/
# define PDIR_OUT            0x01
# define PDIR_IN             0x00
# define High                0x01
# define Low                 0x00

/*---------兼容性宏定义-----------*/
# define PORTDefine();

/*------------------*
* 硬 件 连 接 定 义 *
*------------------*/

/*---------------- PORT口绑定 ---------------*/
#ifdef PORTA
    # define PORTA_BIT     SET_BIT8_FORMAT(PORTA)
#endif
#ifdef PORTB
    # define PORTB_BIT     SET_BIT8_FORMAT(PORTB)
#endif
#ifdef PORTC
    # define PORTC_BIT     SET_BIT8_FORMAT(PORTC)
#endif
#ifdef PORTD
    # define PORTD_BIT     SET_BIT8_FORMAT(PORTD)
#endif
#ifdef PORTE
    # define PORTE_BIT     SET_BIT8_FORMAT(PORTE)
#endif
#ifdef PORTF
    # define PORTF_BIT     SET_BIT8_FORMAT(PORTF)
#endif
#ifdef PORTG
    # define PORTG_BIT     SET_BIT8_FORMAT(PORTG)
#endif


/*---------------- DDR 口绑定 ---------------*/
#ifdef DDRA
    # define DDRA_BIT     SET_BIT8_FORMAT(DDRA)
#endif
#ifdef DDRB
    # define DDRB_BIT     SET_BIT8_FORMAT(DDRB)
#endif
#ifdef DDRC
    # define DDRC_BIT     SET_BIT8_FORMAT(DDRC)
#endif
#ifdef DDRD
    # define DDRD_BIT     SET_BIT8_FORMAT(DDRD)
#endif
#ifdef DDRE
    # define DDRE_BIT     SET_BIT8_FORMAT(DDRE)
#endif
#ifdef DDRF
    # define DDRF_BIT     SET_BIT8_FORMAT(DDRF)
#endif
#ifdef DDRG
    # define DDRG_BIT     SET_BIT8_FORMAT(DDRG)
#endif

/*---------------- PIN 口绑定 ---------------*/
#ifdef PINA
    # define PINA_BIT     SET_BIT8_FORMAT(PINA)
#endif
#ifdef PINB
    # define PINB_BIT     SET_BIT8_FORMAT(PINB)
#endif
#ifdef PINC
    # define PINC_BIT     SET_BIT8_FORMAT(PINC)
#endif
#ifdef PIND
    # define PIND_BIT     SET_BIT8_FORMAT(PIND)
#endif
#ifdef PINE
    # define PINE_BIT     SET_BIT8_FORMAT(PINE)
#endif
#ifdef PINF
    # define PINF_BIT     SET_BIT8_FORMAT(PINF)
#endif
#ifdef PING
    # define PING_BIT     SET_BIT8_FORMAT(PING)
#endif

/*------------------*
*   端 口 宏 定 义  *
*------------------*/

/*-------------PORT位操作定义--------------*/
#ifdef PORTA
    # define _PA0        PORTA_BIT.BIT0
    # define _PA1        PORTA_BIT.BIT1
    # define _PA2        PORTA_BIT.BIT2
    # define _PA3        PORTA_BIT.BIT3
    # define _PA4        PORTA_BIT.BIT4
    # define _PA5        PORTA_BIT.BIT5
    # define _PA6        PORTA_BIT.BIT6
    # define _PA7        PORTA_BIT.BIT7
#endif
#ifdef PORTB
    # define _PB0        PORTB_BIT.BIT0
    # define _PB1        PORTB_BIT.BIT1
    # define _PB2        PORTB_BIT.BIT2
    # define _PB3        PORTB_BIT.BIT3
    # define _PB4        PORTB_BIT.BIT4
    # define _PB5        PORTB_BIT.BIT5
    # define _PB6        PORTB_BIT.BIT6
    # define _PB7        PORTB_BIT.BIT7
#endif
#ifdef PORTC
    # define _PC0        PORTC_BIT.BIT0
    # define _PC1        PORTC_BIT.BIT1
    # define _PC2        PORTC_BIT.BIT2
    # define _PC3        PORTC_BIT.BIT3
    # define _PC4        PORTC_BIT.BIT4
    # define _PC5        PORTC_BIT.BIT5
    # define _PC6        PORTC_BIT.BIT6
    # define _PC7        PORTC_BIT.BIT7
#endif
#ifdef PORTD
    # define _PD0        PORTD_BIT.BIT0
    # define _PD1        PORTD_BIT.BIT1
    # define _PD2        PORTD_BIT.BIT2
    # define _PD3        PORTD_BIT.BIT3
    # define _PD4        PORTD_BIT.BIT4
    # define _PD5        PORTD_BIT.BIT5
    # define _PD6        PORTD_BIT.BIT6
    # define _PD7        PORTD_BIT.BIT7
#endif
#ifdef PORTE
    # define _PE0        PORTE_BIT.BIT0
    # define _PE1        PORTE_BIT.BIT1
    # define _PE2        PORTE_BIT.BIT2
    # define _PE3        PORTE_BIT.BIT3
    # define _PE4        PORTE_BIT.BIT4
    # define _PE5        PORTE_BIT.BIT5
    # define _PE6        PORTE_BIT.BIT6
    # define _PE7        PORTE_BIT.BIT7
#endif
#ifdef PORTF
    # define _PF0        PORTF_BIT.BIT0
    # define _PF1        PORTF_BIT.BIT1
    # define _PF2        PORTF_BIT.BIT2
    # define _PF3        PORTF_BIT.BIT3
    # define _PF4        PORTF_BIT.BIT4
    # define _PF5        PORTF_BIT.BIT5
    # define _PF6        PORTF_BIT.BIT6
    # define _PF7        PORTF_BIT.BIT7
#endif
#ifdef PORTG
    # define _PG0        PORTG_BIT.BIT0
    # define _PG1        PORTG_BIT.BIT1
    # define _PG2        PORTG_BIT.BIT2
    # define _PG3        PORTG_BIT.BIT3
    # define _PG4        PORTG_BIT.BIT4
    # define _PG5        PORTG_BIT.BIT5
    # define _PG6        PORTG_BIT.BIT6
    # define _PG7        PORTG_BIT.BIT7
#endif


/*------------- DDR 位操作定义 -------------*/
#ifdef DDRA
    # define DDR_PA0     DDRA_BIT.BIT0
    # define DDR_PA1     DDRA_BIT.BIT1
    # define DDR_PA2     DDRA_BIT.BIT2
    # define DDR_PA3     DDRA_BIT.BIT3
    # define DDR_PA4     DDRA_BIT.BIT4
    # define DDR_PA5     DDRA_BIT.BIT5
    # define DDR_PA6     DDRA_BIT.BIT6
    # define DDR_PA7     DDRA_BIT.BIT7
#endif
#ifdef DDRB
    # define DDR_PB0     DDRB_BIT.BIT0
    # define DDR_PB1     DDRB_BIT.BIT1
    # define DDR_PB2     DDRB_BIT.BIT2
    # define DDR_PB3     DDRB_BIT.BIT3
    # define DDR_PB4     DDRB_BIT.BIT4
    # define DDR_PB5     DDRB_BIT.BIT5
    # define DDR_PB6     DDRB_BIT.BIT6
    # define DDR_PB7     DDRB_BIT.BIT7
#endif
#ifdef DDRC
    # define DDR_PC0     DDRC_BIT.BIT0
    # define DDR_PC1     DDRC_BIT.BIT1
    # define DDR_PC2     DDRC_BIT.BIT2
    # define DDR_PC3     DDRC_BIT.BIT3
    # define DDR_PC4     DDRC_BIT.BIT4
    # define DDR_PC5     DDRC_BIT.BIT5
    # define DDR_PC6     DDRC_BIT.BIT6
    # define DDR_PC7     DDRC_BIT.BIT7
#endif
#ifdef DDRD
    # define DDR_PD0     DDRD_BIT.BIT0
    # define DDR_PD1     DDRD_BIT.BIT1
    # define DDR_PD2     DDRD_BIT.BIT2
    # define DDR_PD3     DDRD_BIT.BIT3
    # define DDR_PD4     DDRD_BIT.BIT4
    # define DDR_PD5     DDRD_BIT.BIT5
    # define DDR_PD6     DDRD_BIT.BIT6
    # define DDR_PD7     DDRD_BIT.BIT7
#endif
#ifdef DDRE
    # define DDR_PE0     DDRE_BIT.BIT0
    # define DDR_PE1     DDRE_BIT.BIT1
    # define DDR_PE2     DDRE_BIT.BIT2
    # define DDR_PE3     DDRE_BIT.BIT3
    # define DDR_PE4     DDRE_BIT.BIT4
    # define DDR_PE5     DDRE_BIT.BIT5
    # define DDR_PE6     DDRE_BIT.BIT6
    # define DDR_PE7     DDRE_BIT.BIT7
#endif
#ifdef DDRF
    # define DDR_PF0     DDRF_BIT.BIT0
    # define DDR_PF1     DDRF_BIT.BIT1
    # define DDR_PF2     DDRF_BIT.BIT2
    # define DDR_PF3     DDRF_BIT.BIT3
    # define DDR_PF4     DDRF_BIT.BIT4
    # define DDR_PF5     DDRF_BIT.BIT5
    # define DDR_PF6     DDRF_BIT.BIT6
    # define DDR_PF7     DDRF_BIT.BIT7
#endif
#ifdef DDRG
    # define DDR_PG0     DDRG_BIT.BIT0
    # define DDR_PG1     DDRG_BIT.BIT1
    # define DDR_PG2     DDRG_BIT.BIT2
    # define DDR_PG3     DDRG_BIT.BIT3
    # define DDR_PG4     DDRG_BIT.BIT4
    # define DDR_PG5     DDRG_BIT.BIT5
    # define DDR_PG6     DDRG_BIT.BIT6
    # define DDR_PG7     DDRG_BIT.BIT7
#endif

/*------------- PIN 位操作定义 -------------*/
#ifdef PINA
    # define READ_PA0     PINA_BIT.BIT0
    # define READ_PA1     PINA_BIT.BIT1
    # define READ_PA2     PINA_BIT.BIT2
    # define READ_PA3     PINA_BIT.BIT3
    # define READ_PA4     PINA_BIT.BIT4
    # define READ_PA5     PINA_BIT.BIT5
    # define READ_PA6     PINA_BIT.BIT6
    # define READ_PA7     PINA_BIT.BIT7
#endif
#ifdef PINB
    # define READ_PB0     PINB_BIT.BIT0
    # define READ_PB1     PINB_BIT.BIT1
    # define READ_PB2     PINB_BIT.BIT2
    # define READ_PB3     PINB_BIT.BIT3
    # define READ_PB4     PINB_BIT.BIT4
    # define READ_PB5     PINB_BIT.BIT5
    # define READ_PB6     PINB_BIT.BIT6
    # define READ_PB7     PINB_BIT.BIT7
#endif
#ifdef PINC
    # define READ_PC0     PINC_BIT.BIT0
    # define READ_PC1     PINC_BIT.BIT1
    # define READ_PC2     PINC_BIT.BIT2
    # define READ_PC3     PINC_BIT.BIT3
    # define READ_PC4     PINC_BIT.BIT4
    # define READ_PC5     PINC_BIT.BIT5
    # define READ_PC6     PINC_BIT.BIT6
    # define READ_PC7     PINC_BIT.BIT7
#endif
#ifdef PIND
    # define READ_PD0     PIND_BIT.BIT0
    # define READ_PD1     PIND_BIT.BIT1
    # define READ_PD2     PIND_BIT.BIT2
    # define READ_PD3     PIND_BIT.BIT3
    # define READ_PD4     PIND_BIT.BIT4
    # define READ_PD5     PIND_BIT.BIT5
    # define READ_PD6     PIND_BIT.BIT6
    # define READ_PD7     PIND_BIT.BIT7
#endif
#ifdef PINE
    # define READ_PE0     PINE_BIT.BIT0
    # define READ_PE1     PINE_BIT.BIT1
    # define READ_PE2     PINE_BIT.BIT2
    # define READ_PE3     PINE_BIT.BIT3
    # define READ_PE4     PINE_BIT.BIT4
    # define READ_PE5     PINE_BIT.BIT5
    # define READ_PE6     PINE_BIT.BIT6
    # define READ_PE7     PINE_BIT.BIT7
#endif
#ifdef PINF
    # define READ_PF0     PINF_BIT.BIT0
    # define READ_PF1     PINF_BIT.BIT1
    # define READ_PF2     PINF_BIT.BIT2
    # define READ_PF3     PINF_BIT.BIT3
    # define READ_PF4     PINF_BIT.BIT4
    # define READ_PF5     PINF_BIT.BIT5
    # define READ_PF6     PINF_BIT.BIT6
    # define READ_PF7     PINF_BIT.BIT7
#endif
#ifdef PING
    # define READ_PG0     PING_BIT.BIT0
    # define READ_PG1     PING_BIT.BIT1
    # define READ_PG2     PING_BIT.BIT2
    # define READ_PG3     PING_BIT.BIT3
    # define READ_PG4     PING_BIT.BIT4
    # define READ_PG5     PING_BIT.BIT5
    # define READ_PG6     PING_BIT.BIT6
    # define READ_PG7     PING_BIT.BIT7
#endif

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -