📄 rps.h
字号:
#ifndef _RPS_H
#define _RPS_H
#include "ave2kregs.h"
// RPS events
#define RE_NONE MASK_NONE // No event (immediate)
#define RE_I2C_DONE MASK_00 // I2C done
#define RE_DEBI_DONE MASK_01 // DEBI done
#define RE_VFR_1 MASK_02 // Video FIFO 1 ready
#define RE_VFR_2 MASK_03 // Video FIFO 2 ready
#define RE_VFR_3 MASK_04 // Video FIFO 3 ready
#define RE_HPS_EAW MASK_05 // HPS done - end of active window
#define RE_HPS_EOL MASK_06 // HPS line done - end of active line
#define RE_BRS_EAW MASK_08 // BRS done - end of active window
#define RE_VBI_A MASK_09 // Vertical blanking interval at port A
#define RE_VBI_B MASK_10 // Vertical blanking interval at port A
#define RE_EVEN_FIELD_A MASK_11 // Even field at port A
#define RE_ODD_FIELD_A MASK_12 // Odd field at port A
#define RE_EVEN_FIELD_B MASK_13 // Even field at port B
#define RE_ODD_FIELD_B MASK_14 // Odd field at port B
#define RE_HSRC_HPS MASK_15 // Horz. source line number HPS (virtual)
#define RE_HDST_HPS MASK_16 // Horiz. dest. line number HPS (virtual)
#define RE_GPIO_0 MASK_17 // General purpose I/O pin 0 triggered
#define RE_GPIO_1 MASK_18 // General purpose I/O pin 1 triggered
#define RE_GPIO_2 MASK_19 // General purpose I/O pin 2 triggered
#define RE_GPIO_3 MASK_20 // General purpose I/O pin 3 triggered
#define RE_SIG_0 MASK_21 // General purpose signnal 0 triggered
#define RE_SIG_1 MASK_22 // General purpose signnal 1 triggered
#define RE_SIG_2 MASK_23 // General purpose signnal 2 triggered
#define RE_SIG_3 MASK_24 // General purpose signnal 3 triggered
#define RE_SIG_4 MASK_25 // General purpose signnal 4 triggered
#define RE_HSRC_BRS MASK_26 // Horz. source line number BRS (virtual)
#define RE_HDST_BRS MASK_27 // Horiz. dest. line number BRS (virtual)
// RPS command constants
#define CMD_NOP 0x00000000 // No operation
#define CMD_CLR_EVENT 0x00000000 // Clear event
#define CMD_SET_EVENT 0x10000000 // Set signal event
#define CMD_PAUSE 0x20000000 // Pause
#define CMD_CHECK_LATE 0x30000000 // Check late
#define CMD_UPLOAD 0x40000000 // Upload
#define CMD_STOP 0x50000000 // Stop
#define CMD_INTERRUPT 0x60000000 // Interrupt
#define CMD_JUMP 0x80000000 // Jump
#define CMD_WR_REG 0x90000000 // Write (load) register
#define CMD_RD_REG 0xa0000000 // Read (store) register
#define CMD_WR_REG_MASK 0xc0000000 // Write register with mask
// Miscellaneous constants
#define MAX_HW_RPS 2 // Number of hardware RPS
#define MAX_REG_SIZE 20 // Max RPS cmd bytes per register entry
#define MAX_CB_SIZE 20 // Max RPS cmd bytes per callback entry
#define MAX_EVENT_SIZE 24 // Max RPS cmd bytes per RPS event(s)
#define LC_RANGE_MASK 0x00000fff // Line counter range mask
#define SRC_LC_MASK 0x00001fff // Source line counter mask
#define DST_LC_MASK 0x1fff0000 // Destination line counter mask
#define SRC_BRS_LC_MASK MASK_12 // Source line counter for BRS mask
#define DST_BRS_LC_MASK MASK_28 // Destination line counter for BRS mask
#define ENABLE_MASK_0 MASK_12 // RPS unit 0 enable mask
#define ENABLE_MASK_1 MASK_13 // RPS unit 1 enable mask
#define CB_FLAG_REG MC1 // Reg. to read to set callback flag
#define RPS_PAGE RPS_PAGE0 // RPS page regiser - unit 0
#define VIDEO_LINE_COUNT RPS_THRESH0// RPS src/dst line counters - unit 0
#define DEBI_ADDRESS DEBI_AD // DEBI address register
#define RE_HSRC RE_HSRC_HPS// Actual BRS/HPS horz source line number
#define RE_HDST RE_HDST_HPS// Actual BRS/HPS horz dest. line number
#define RE_EOL RE_HPS_EOL // HPS end of line event
#define RE_EVEN_FIELD (RE_EVEN_FIELD_A | RE_EVEN_FIELD_B)// Port A/B even
#define RE_ODD_FIELD (RE_ODD_FIELD_A | RE_ODD_FIELD_B) // Port A/B odd
// #define RE_EAW (RE_HPS_EAW | RE_BRS_EAW) // HPS/BRS EAW
// RPS command macros
#define WriteRegCmd_M(Reg, Size) (CMD_WR_REG | (Size << 8) | (Reg >> 2))
#define WriteRegMaskCmd_M(Reg,Size) (CMD_WR_REG_MASK | (Reg >> 2))
#define ReadRegCmd_M(Reg, Size) (CMD_RD_REG | (Size << 8) | (Reg >> 2))
#define CheckLate_M(Event, Opr) (CMD_CHECK_LATE | ((DWORD)Opr<<26) | Event)
#define Pause_M(Event, Opr) (CMD_PAUSE | ((DWORD)Opr<<26) | Event)
#define Upload_M(Mask) (CMD_UPLOAD | Mask)
#define ClearEvent_M(Event) (CMD_CLR_EVENT | Event)
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -