📄 rd_usevirtualport.h
字号:
# define _PQ5 PORTQ_BIT.BIT5
# define _PQ6 PORTQ_BIT.BIT6
# define _PQ7 PORTQ_BIT.BIT7
#endif
#ifdef PORTR
# define _PR0 PORTR_BIT.BIT0
# define _PR1 PORTR_BIT.BIT1
# define _PR2 PORTR_BIT.BIT2
# define _PR3 PORTR_BIT.BIT3
# define _PR4 PORTR_BIT.BIT4
# define _PR5 PORTR_BIT.BIT5
# define _PR6 PORTR_BIT.BIT6
# define _PR7 PORTR_BIT.BIT7
#endif
#ifdef PORTS
# define _PS0 PORTS_BIT.BIT0
# define _PS1 PORTS_BIT.BIT1
# define _PS2 PORTS_BIT.BIT2
# define _PS3 PORTS_BIT.BIT3
# define _PS4 PORTS_BIT.BIT4
# define _PS5 PORTS_BIT.BIT5
# define _PS6 PORTS_BIT.BIT6
# define _PS7 PORTS_BIT.BIT7
#endif
#ifdef PORTT
# define _PT0 PORTT_BIT.BIT0
# define _PT1 PORTT_BIT.BIT1
# define _PT2 PORTT_BIT.BIT2
# define _PT3 PORTT_BIT.BIT3
# define _PT4 PORTT_BIT.BIT4
# define _PT5 PORTT_BIT.BIT5
# define _PT6 PORTT_BIT.BIT6
# define _PT7 PORTT_BIT.BIT7
#endif
#ifdef PORTU
# define _PU0 PORTU_BIT.BIT0
# define _PU1 PORTU_BIT.BIT1
# define _PU2 PORTU_BIT.BIT2
# define _PU3 PORTU_BIT.BIT3
# define _PU4 PORTU_BIT.BIT4
# define _PU5 PORTU_BIT.BIT5
# define _PU6 PORTU_BIT.BIT6
# define _PU7 PORTU_BIT.BIT7
#endif
#ifdef PORTV
# define _PV0 PORTV_BIT.BIT0
# define _PV1 PORTV_BIT.BIT1
# define _PV2 PORTV_BIT.BIT2
# define _PV3 PORTV_BIT.BIT3
# define _PV4 PORTV_BIT.BIT4
# define _PV5 PORTV_BIT.BIT5
# define _PV6 PORTV_BIT.BIT6
# define _PV7 PORTV_BIT.BIT7
#endif
#ifdef PORTW
# define _PW0 PORTW_BIT.BIT0
# define _PW1 PORTW_BIT.BIT1
# define _PW2 PORTW_BIT.BIT2
# define _PW3 PORTW_BIT.BIT3
# define _PW4 PORTW_BIT.BIT4
# define _PW5 PORTW_BIT.BIT5
# define _PW6 PORTW_BIT.BIT6
# define _PW7 PORTW_BIT.BIT7
#endif
#ifdef PORTX
# define _PX0 PORTX_BIT.BIT0
# define _PX1 PORTX_BIT.BIT1
# define _PX2 PORTX_BIT.BIT2
# define _PX3 PORTX_BIT.BIT3
# define _PX4 PORTX_BIT.BIT4
# define _PX5 PORTX_BIT.BIT5
# define _PX6 PORTX_BIT.BIT6
# define _PX7 PORTX_BIT.BIT7
#endif
#ifdef PORTY
# define _PY0 PORTY_BIT.BIT0
# define _PY1 PORTY_BIT.BIT1
# define _PY2 PORTY_BIT.BIT2
# define _PY3 PORTY_BIT.BIT3
# define _PY4 PORTY_BIT.BIT4
# define _PY5 PORTY_BIT.BIT5
# define _PY6 PORTY_BIT.BIT6
# define _PY7 PORTY_BIT.BIT7
#endif
#ifdef PORTZ
# define _PZ0 PORTZ_BIT.BIT0
# define _PZ1 PORTZ_BIT.BIT1
# define _PZ2 PORTZ_BIT.BIT2
# define _PZ3 PORTZ_BIT.BIT3
# define _PZ4 PORTZ_BIT.BIT4
# define _PZ5 PORTZ_BIT.BIT5
# define _PZ6 PORTZ_BIT.BIT6
# define _PZ7 PORTZ_BIT.BIT7
#endif
#ifdef PINH
# define Read_PH0 PINH_BIT.BIT0
# define Read_PH1 PINH_BIT.BIT1
# define Read_PH2 PINH_BIT.BIT2
# define Read_PH3 PINH_BIT.BIT3
# define Read_PH4 PINH_BIT.BIT4
# define Read_PH5 PINH_BIT.BIT5
# define Read_PH6 PINH_BIT.BIT6
# define Read_PH7 PINH_BIT.BIT7
#endif
#ifdef PINI
# define Read_PI0 PINI_BIT.BIT0
# define Read_PI1 PINI_BIT.BIT1
# define Read_PI2 PINI_BIT.BIT2
# define Read_PI3 PINI_BIT.BIT3
# define Read_PI4 PINI_BIT.BIT4
# define Read_PI5 PINI_BIT.BIT5
# define Read_PI6 PINI_BIT.BIT6
# define Read_PI7 PINI_BIT.BIT7
#endif
#ifdef PINJ
# define Read_PJ0 PINJ_BIT.BIT0
# define Read_PJ1 PINJ_BIT.BIT1
# define Read_PJ2 PINJ_BIT.BIT2
# define Read_PJ3 PINJ_BIT.BIT3
# define Read_PJ4 PINJ_BIT.BIT4
# define Read_PJ5 PINJ_BIT.BIT5
# define Read_PJ6 PINJ_BIT.BIT6
# define Read_PJ7 PINJ_BIT.BIT7
#endif
#ifdef PINK
# define Read_PK0 PINK_BIT.BIT0
# define Read_PK1 PINK_BIT.BIT1
# define Read_PK2 PINK_BIT.BIT2
# define Read_PK3 PINK_BIT.BIT3
# define Read_PK4 PINK_BIT.BIT4
# define Read_PK5 PINK_BIT.BIT5
# define Read_PK6 PINK_BIT.BIT6
# define Read_PK7 PINK_BIT.BIT7
#endif
#ifdef PINL
# define Read_PL0 PINL_BIT.BIT0
# define Read_PL1 PINL_BIT.BIT1
# define Read_PL2 PINL_BIT.BIT2
# define Read_PL3 PINL_BIT.BIT3
# define Read_PL4 PINL_BIT.BIT4
# define Read_PL5 PINL_BIT.BIT5
# define Read_PL6 PINL_BIT.BIT6
# define Read_PL7 PINL_BIT.BIT7
#endif
#ifdef PINM
# define Read_PM0 PINM_BIT.BIT0
# define Read_PM1 PINM_BIT.BIT1
# define Read_PM2 PINM_BIT.BIT2
# define Read_PM3 PINM_BIT.BIT3
# define Read_PM4 PINM_BIT.BIT4
# define Read_PM5 PINM_BIT.BIT5
# define Read_PM6 PINM_BIT.BIT6
# define Read_PM7 PINM_BIT.BIT7
#endif
#ifdef PINN
# define Read_PN0 PINN_BIT.BIT0
# define Read_PN1 PINN_BIT.BIT1
# define Read_PN2 PINN_BIT.BIT2
# define Read_PN3 PINN_BIT.BIT3
# define Read_PN4 PINN_BIT.BIT4
# define Read_PN5 PINN_BIT.BIT5
# define Read_PN6 PINN_BIT.BIT6
# define Read_PN7 PINN_BIT.BIT7
#endif
#ifdef PINO
# define Read_PO0 PINO_BIT.BIT0
# define Read_PO1 PINO_BIT.BIT1
# define Read_PO2 PINO_BIT.BIT2
# define Read_PO3 PINO_BIT.BIT3
# define Read_PO4 PINO_BIT.BIT4
# define Read_PO5 PINO_BIT.BIT5
# define Read_PO6 PINO_BIT.BIT6
# define Read_PO7 PINO_BIT.BIT7
#endif
#ifdef PINP
# define Read_PP0 PINP_BIT.BIT0
# define Read_PP1 PINP_BIT.BIT1
# define Read_PP2 PINP_BIT.BIT2
# define Read_PP3 PINP_BIT.BIT3
# define Read_PP4 PINP_BIT.BIT4
# define Read_PP5 PINP_BIT.BIT5
# define Read_PP6 PINP_BIT.BIT6
# define Read_PP7 PINP_BIT.BIT7
#endif
#ifdef PINQ
# define Read_PQ0 PINQ_BIT.BIT0
# define Read_PQ1 PINQ_BIT.BIT1
# define Read_PQ2 PINQ_BIT.BIT2
# define Read_PQ3 PINQ_BIT.BIT3
# define Read_PQ4 PINQ_BIT.BIT4
# define Read_PQ5 PINQ_BIT.BIT5
# define Read_PQ6 PINQ_BIT.BIT6
# define Read_PQ7 PINQ_BIT.BIT7
#endif
#ifdef PINR
# define Read_PR0 PINR_BIT.BIT0
# define Read_PR1 PINR_BIT.BIT1
# define Read_PR2 PINR_BIT.BIT2
# define Read_PR3 PINR_BIT.BIT3
# define Read_PR4 PINR_BIT.BIT4
# define Read_PR5 PINR_BIT.BIT5
# define Read_PR6 PINR_BIT.BIT6
# define Read_PR7 PINR_BIT.BIT7
#endif
#ifdef PINS
# define Read_PS0 PINS_BIT.BIT0
# define Read_PS1 PINS_BIT.BIT1
# define Read_PS2 PINS_BIT.BIT2
# define Read_PS3 PINS_BIT.BIT3
# define Read_PS4 PINS_BIT.BIT4
# define Read_PS5 PINS_BIT.BIT5
# define Read_PS6 PINS_BIT.BIT6
# define Read_PS7 PINS_BIT.BIT7
#endif
#ifdef PINT
# define Read_PT0 PINT_BIT.BIT0
# define Read_PT1 PINT_BIT.BIT1
# define Read_PT2 PINT_BIT.BIT2
# define Read_PT3 PINT_BIT.BIT3
# define Read_PT4 PINT_BIT.BIT4
# define Read_PT5 PINT_BIT.BIT5
# define Read_PT6 PINT_BIT.BIT6
# define Read_PT7 PINT_BIT.BIT7
#endif
#ifdef PINU
# define Read_PU0 PINU_BIT.BIT0
# define Read_PU1 PINU_BIT.BIT1
# define Read_PU2 PINU_BIT.BIT2
# define Read_PU3 PINU_BIT.BIT3
# define Read_PU4 PINU_BIT.BIT4
# define Read_PU5 PINU_BIT.BIT5
# define Read_PU6 PINU_BIT.BIT6
# define Read_PU7 PINU_BIT.BIT7
#endif
#ifdef PINV
# define Read_PV0 PINV_BIT.BIT0
# define Read_PV1 PINV_BIT.BIT1
# define Read_PV2 PINV_BIT.BIT2
# define Read_PV3 PINV_BIT.BIT3
# define Read_PV4 PINV_BIT.BIT4
# define Read_PV5 PINV_BIT.BIT5
# define Read_PV6 PINV_BIT.BIT6
# define Read_PV7 PINV_BIT.BIT7
#endif
#ifdef PINW
# define Read_PW0 PINW_BIT.BIT0
# define Read_PW1 PINW_BIT.BIT1
# define Read_PW2 PINW_BIT.BIT2
# define Read_PW3 PINW_BIT.BIT3
# define Read_PW4 PINW_BIT.BIT4
# define Read_PW5 PINW_BIT.BIT5
# define Read_PW6 PINW_BIT.BIT6
# define Read_PW7 PINW_BIT.BIT7
#endif
#ifdef PINX
# define Read_PX0 PINX_BIT.BIT0
# define Read_PX1 PINX_BIT.BIT1
# define Read_PX2 PINX_BIT.BIT2
# define Read_PX3 PINX_BIT.BIT3
# define Read_PX4 PINX_BIT.BIT4
# define Read_PX5 PINX_BIT.BIT5
# define Read_PX6 PINX_BIT.BIT6
# define Read_PX7 PINX_BIT.BIT7
#endif
#ifdef PINY
# define Read_PY0 PINY_BIT.BIT0
# define Read_PY1 PINY_BIT.BIT1
# define Read_PY2 PINY_BIT.BIT2
# define Read_PY3 PINY_BIT.BIT3
# define Read_PY4 PINY_BIT.BIT4
# define Read_PY5 PINY_BIT.BIT5
# define Read_PY6 PINY_BIT.BIT6
# define Read_PY7 PINY_BIT.BIT7
#endif
#ifdef PINZ
# define Read_PZ0 PINZ_BIT.BIT0
# define Read_PZ1 PINZ_BIT.BIT1
# define Read_PZ2 PINZ_BIT.BIT2
# define Read_PZ3 PINZ_BIT.BIT3
# define Read_PZ4 PINZ_BIT.BIT4
# define Read_PZ5 PINZ_BIT.BIT5
# define Read_PZ6 PINZ_BIT.BIT6
# define Read_PZ7 PINZ_BIT.BIT7
#endif
/*------------------*
* 动 作 宏 定 义 *
*------------------*/
# define VIRTUALPORT_INSERT_SPI_STC_ISR_CODE VP_PINx[VP_PORT_COUNT - VP_PortCounter] = SPDR; VP_IfStartRefresh = True;
# define REFRESH_VIRTUAL_PORT refreshVirtualPort();
/********************
* 结构体宏定义 *
********************/
/********************
* 函 数 声 明 区 *
********************/
BOOL refreshVirtualPort(void);
/********************
* 全局变量声明区 *
********************/
volatile unsigned char VP_PORTx[VP_PORT_COUNT];
volatile unsigned char VP_PINx[VP_PORT_COUNT];
BOOL VP_IfStartRefresh = False; //虚拟端口刷新标志
unsigned char VP_PortCounter = 0; //虚拟端口计数器
/***********************************************************
* 函数说明:虚拟端口刷新函数 *
***********************************************************/
BOOL refreshVirtualPort(void)
{
static BOOL IfStartRefresh = False; //刷新忙信号
if (IfStartRefresh)
{
return False;
}
IfStartRefresh = True;
VP_SS = Low;
VP_SS = High; //锁存并行数据
for (VP_PortCounter = VP_PORT_COUNT;VP_PortCounter>0;VP_PortCounter--)
{
VP_IfStartRefresh = False; //设置等待完成信号
SPDR = VP_PORTx[VP_PortCounter-1];
while(VP_IfStartRefresh == False);
}
VP_SS = Low;
VP_SS = High; //锁存串行数据
IfStartRefresh = False;
return True;
}
/***********************************************************
* 函数说明:SPI硬件接口初始化 上升沿采样 *
***********************************************************/
void SPIInit(void)
{
SPCR = 0xDC;
SPSR = 0x01;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -