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

📄 phantomregisters.h

📁 用Ardence RTX SDK开发的EPP并口驱动程序.
💻 H
字号:

/* Basic idea is to do a burst read, then a burst write         */                    

/********************************************/
/*            INPUT REGISTER MAP            */
/********************************************/

/* Register 0,1   -- Quadrature Axis 0: low byte, high byte     */
/* Register 2,3   -- Quadrature Axis 1: low byte, high byte     */
/* Register 4,5   -- Quadrature Axis 2: low byte, high byte     */
/* Register 6,7   -- Potentiometer A/D 0: low byte, high byte   */
/* Register 8,9   -- Potentiometer A/D 1: low byte, high byte   */
/* Register 10,11 -- Potentiometer A/D 2: low byte, high byte   */
/* Register 12    -- Timer free running counter                 */
/* Register 13    -- Digital Inputs + error flags               */
/*      Bit 7 -- Watchdog disable jumper                        */
/*      Bit 6 -- Watchdog OK (1 = OK / 0 = timed out            */
/*      Bit 5 -- Current Limit Error (1 = over current)         */
/*      Bit 4 -- Home input 2 (0 = in home position)            */
/*      Bit 3 -- Home input 1 (0 = in home position)            */ 
/*      Bit 2 -- Home input 0 (0 = in home position)            */
/*      Bit 1 -- Stylus switch input (0 = pressed)              */
/*      Bit 0 -- Stylus presence input (0 = presence detected)  */
/* Register 14    -- watchdog data/test reg                     */
/* Register 15    -- Speed error flags + hardware revision      */
/*      Bit 7 -- GND unused                                     */
/*      Bit 6 -- Channel 2 overspeed error                      */
/*      Bit 5 -- Channel 1 overspeed error                      */
/*      Bit 4 -- Channel 0 overspeed error                      */
/*      Bit 3 to 0 -- Hardware revision                         */

#define    INPUT_LENGTH (16)        /* Bytes */

#define    OFFSET_QUAD0_LOW       (0)
#define    OFFSET_QUAD0_HIGH      (1)
#define    OFFSET_QUAD1_LOW       (2)
#define    OFFSET_QUAD1_HIGH      (3)
#define    OFFSET_QUAD2_LOW       (4)
#define    OFFSET_QUAD2_HIGH      (5)
#define    OFFSET_POT0_LOW        (6)
#define    OFFSET_POT0_HIGH       (7)
#define    OFFSET_POT1_LOW        (8)
#define    OFFSET_POT1_HIGH       (9)
#define    OFFSET_POT2_LOW        (10)
#define    OFFSET_POT2_HIGH       (11)
#define    OFFSET_TIMER_CNT       (12)
#define    OFFSET_MISC_IN         (13)
#define    OFFSET_WDOG_CNTR_IN    (14)
#define    OFFSET_SPEED_ERRS      (15)

#define    WDOG_DISABLE_STATUS	 (0x80)
#define    WDOG_IS_OK            (0x40)
#define    OVER_CURRENT_ERR      (0x20)
#define    HOME_SENSOR2          (0x10)
#define    HOME_SENSOR1          (0x08)
#define    HOME_SENSOR0          (0x04)
#define    STYLUS_SWITCH         (0x02)
#define    STYLUS_PRESENCE       (0x01)

#define    OVER_SPEED_ERR2       (0x40)
#define    OVER_SPEED_ERR1       (0x20)
#define    OVER_SPEED_ERR0       (0x10)
#define    HARDWARE_REV_MASK     (0x0f)
            
/********************************************/
/*            OUTPUT REGISTER MAP           */
/********************************************/

/* Register 0x10,1 -- D/A 0 register low byte, high byte    */
/* Register 0x12,3 -- D/A 1 register low byte, high byte    */
/* Register 0x14,5 -- D/A 2 register low byte, high byte    */
/* Register 0x16 -- Bit outputs:                */
/*      Bit 7 -- int_enable     -- strobes timer interrupt              */
/*      Bit 6 -- timer_enable   -- enables timer operation              */
/*      Bit 5 -- timer_high/low -- 1 = timer 0.5mS // 0 = timer 1.0mS   */
/*      Bit 4 -- quad_reset     -- Set hi, then low to rst quad cntrs   */
/*      Bit 3 -- error_reset    -- Set hi, then low to rst latchd errs  */
/*      Bits 2 to 0 -- status_led[2..0] Status LED control lines        */
/*          H"0"    =>  GREEN/YELLOW,   FLASH_FAST  */
/*          H"1"    =>  GREEN,          FLASH_SLOW  */
/*          H"2"    =>  YELLOW,         FLASH_SLOW  */
/*          H"3"    =>  YELLOW,         FLASH_FAST  */
/*          H"4"    =>  GREEN/YELLOW,   SOLID       */
/*          H"5"    =>  GREEN,          SOLID       */
/*          H"6"    =>  YELLOW,         SOLID       */
/*          H"7"    =>  GREEN,          FLASH_FAST  */
/* Register 0x17 -- Watchdog Counter; must be continuously incremented      */

#define OUTPUT_LENGTH    (8)    /* Bytes */
#define OFFSET_DTOA0_LOW             (16)
#define OFFSET_DTOA0_HIGH            (17)
#define OFFSET_DTOA1_LOW             (18)
#define OFFSET_DTOA1_HIGH            (19)
#define OFFSET_DTOA2_LOW             (20)
#define OFFSET_DTOA2_HIGH            (21)
#define OFFSET_MISC_OUT            (22)
#define OFFSET_WDOG_CNTR_OUT       (23)

#define     INTER_ENABLE    0x80
#define     TIMER_ENABLE    0x40
#define     TIMER_HIGHSPD   0x20
#define     QUAD_RESET      0x10
#define     ERROR_RESET     0x08
#define     LED_MASK        0x07

#define FAST_GRNYEL     0x00
#define SLOW_GRN        0x01
#define SLOW_YEL        0x02
#define FAST_YEL        0x03
#define SOLID_GRNYEL    0x04
#define SOLID_GRN       0x05
#define SOLID_YEL       0x06
#define FAST_GRN        0x07

typedef unsigned char byte;     /* 8-bit  */
typedef unsigned short word;    /* 16-bit */
typedef unsigned long dword;    /* 32-bit */

typedef struct _PORT_INPUT {
    USHORT  usQuad1;
    USHORT  usQuad2;
    USHORT  usQuad0;
    USHORT  usPot0;
    USHORT  usPot1;
    USHORT  usPot2;
    UCHAR   ucTimerCnt;
    UCHAR   ucMiscIn;
    UCHAR   ucWatchdogCntrIn;
    UCHAR   ucSpeedErrs;
} PORT_INPUT, *PPORT_INPUT;

typedef struct _PORT_OUTPUT {
    USHORT  usDToA0;
    USHORT  usDToA1;
    USHORT  usDToA2;
    UCHAR   ucMiscOut;
    UCHAR   ucWatchdogCntrOut;
} PORT_OUTPUT, *PPORT_OUTPUT;


⌨️ 快捷键说明

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