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

📄 rps.h

📁 driver wdk
💻 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 + -