Main Page   Class Hierarchy   Alphabetical List   Data Structures   File List   Data Fields   Globals  

offsets.h

Go to the documentation of this file.
00001 /*
00002  * offsets.h
00003  *
00004  * Define offsets for various registers on Servo To Go, Inc. Servo I/O card.
00005  *
00006  * Copyright (c) 1995, 1998 Servo To Go, Inc.
00007  * 8117 Groton Ln.
00008  * Indianapolis, IN 46260
00009  *
00010  * For registers in the "high page", an offset of 0x400 is included.
00011  */
00012 #define CNT0_D     0x00
00013 #define CNT1_D     0x01
00014 #define CNT0_C     0x02
00015 #define CNT1_C     0x03
00016 #define CNT2_D     0x04
00017 #define CNT3_D     0x05
00018 #define CNT2_C     0x06
00019 #define CNT3_C     0x07
00020 #define CNT4_D     0x08
00021 #define CNT5_D     0x09
00022 #define CNT4_C     0x0a
00023 #define CNT5_C     0x0b
00024 #define CNT6_D     0x0c
00025 #define CNT7_D     0x0d
00026 #define CNT6_C     0x0e
00027 #define CNT7_C     0x0f
00028 #define DAC_0      0x10
00029 #define DAC_1      0x12
00030 #define DAC_2      0x14
00031 #define DAC_3      0x16
00032 #define DAC_4      0x18
00033 #define DAC_5      0x1a
00034 #define DAC_6      0x1c
00035 #define DAC_7      0x1e
00036 #define ADC        0x410
00037 #define ADC_0      0x410
00038 #define ADC_1      0x412
00039 #define ADC_2      0x414
00040 #define ADC_3      0x416
00041 #define ADC_4      0x418
00042 #define ADC_5      0x41a
00043 #define ADC_6      0x41c
00044 #define ADC_7      0x41e
00045 #define CNTRL0     0x401     /* Model 2 */
00046 #define DIO_A      0x400     /* Model 1 */
00047 #define DIO_B      0x402     /* Model 1 */
00048 #define DIO_C      0x404     /* Model 1 */
00049 #define DIO_D      0x401     /* Model 1 */
00050 #define PORT_A     0x400     /* Model 2, replaces DIO_A */
00051 #define PORT_B     0x402     /* Model 2, replaces DIO_B */
00052 #define PORT_C     0x404     /* Model 2, replaces DIO_C */
00053 #define PORT_D     0x405     /* Model 2, replaces DIO_D */
00054 #define INTC       0x405     /* Model 1 */
00055 #define BRDTST     0x403
00056 #define MIO_1      0x406
00057 #define ABC_DIR    0x406     /* Model 2 */
00058 #define MIO_2      0x407
00059 #define D_DIR      0x407     /* Model 2 */
00060 #define ODDRST     0x407
00061 #define TIMER_0    0x408
00062 #define TIMER_1    0x40a
00063 #define TIMER_2    0x40c
00064 #define TMRCMD     0x40e
00065 #define ICW1       0x409
00066 #define ICW2       0x40b
00067 #define OCW1       0x40b
00068 #define OCW2       0x409
00069 #define OCW3       0x409
00070 #define IRRreg     0x409   // there's something called IRR in ntddk.h
00071 #define ISR        0x409
00072 #define IDLEN      0x409
00073 #define IMR        0x40b
00074 #define SELDI      0x40b
00075 #define IDL        0x40d
00076 #define CNTRL1     0x40f
00077 
00078 /*
00079  * Some bit masks for various registers
00080  */
00081 // for IRR, ISR, and IMR
00082 #define IXEVN      0x80
00083 #define IXODD      0x40
00084 #define LIXEVN     0x20
00085 #define LIXODD     0x10
00086 #define EOC        0x08
00087 #define TP0        0x04
00088 #define USR_INT    0x02
00089 #define TP2        0x01
00090 // for INTC
00091 #define AUTOZERO   0x80
00092 #define IXLVL      0x40
00093 #define IXS1       0x20
00094 #define IXS0       0x10
00095 #define USRINT     0x08
00096 #define IA2        0x04
00097 #define IA1        0x02
00098 #define IA0        0x01
00099 
00100 #define CNTRL0_AZ   0x80
00101 #define CNTRL0_AD2  0x40
00102 #define CNTRL0_AD1  0x20
00103 #define CNTRL0_AD0  0x10
00104 #define CNTRL0_CAL  0x08
00105 #define CNTRL0_IA2  0x04
00106 #define CNTRL0_IA1  0x02
00107 #define CNTRL0_IA0  0x01
00108 
00109 #define CNTRL1_WDTOUT    0x80
00110 #define CNTRL1_INT_G2    0x40
00111 #define CNTRL1_INT_T0    0x10
00112 #define CNTRL1_INT_T2    0x20
00113 #define CNTRL1_NOT_SLAVE 0x08
00114 #define CNTRL1_SLAVE     0x00
00115 #define CNTRL1_IEN_G2    0x04
00116 #define CNTRL1_IEN_T0    0x01
00117 #define CNTRL1_IEN_T2    0x02
00118 
00119 #define BRDTST_EOC       0x08
00120 
00121 /*
00122  * We're hardwired to irq 5 (sorry).  This is normally reserved for
00123  * lpt2, but most people don't have two printers.  Sometimes a modem,
00124  * sound card, etc. will be using this interrupt.  It would be easiest
00125  * to remove any offending card temporarily.  Otherwise you'll have
00126  * to figure out how to change the following define's.
00127  */
00128 /*
00129 #define INTR 13              // irq5 is short 13
00130 #define INT_MASK 0x20        // mask for motherboard interrupt controller
00131 #define IC_ADD   0x20        // address of the interrupt controller on your
00132                              // motherboard (NOT the one on the Servo To Go
00133                              // board).  For low numbered interrupts (0-7)
00134                              // it's 0x20, for higher numbered interrupts
00135                              // (8-15) it's 0xa0
00136 #define EOI_5    0x65        // Specific EOI for IRQ 5 (used with above)
00137 #define IC_MASK  0x21        // The interrupt mask register on your
00138                              // motherboard
00139 */
00140 
00141 #define  IRQSL   0x84        // IRQ selection for INTC register
00142 // end of irq related defines

Generated on Sun Dec 2 15:27:41 2001 for EMC by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001