Main Page   Packages   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

C:/temp/src/j2k/QNX4/Board.c

Go to the documentation of this file.
00001 /****************************************************************************/
00002 /*                                                                          */
00003 /* Function/Macro:  BoardIO_write()                                         */
00004 /*                                                                          */
00005 /* ======================================================================== */
00006 /*                                                                          */
00007 /* Synopsis:        Output a byte to a digital I/O port                     */
00008 /*                                                                          */
00009 /****************************************************************************/
00010 void BoardIO_write( int baseaddr, int port, int val )
00011 {
00012     outp( baseaddr + port, val );
00013 }
00014 
00015 /****************************************************************************/
00016 /*                                                                          */
00017 /* Function/Macro:  BoardIO_read()                                          */
00018 /*                                                                          */
00019 /* ======================================================================== */
00020 /*                                                                          */
00021 /* Synopsis:       Input a byte from a digital I/O port                     */
00022 /*                                                                          */
00023 /****************************************************************************/
00024 int BoardIO_read( int baseaddr, int port )
00025 {
00026     return (  inp( baseaddr + port )  );
00027 }
00028 
00029 /****************************************************************************/
00030 /*                                                                          */
00031 /* Function/Macro:   BoardIO_write_bit()                                    */
00032 /*                                                                          */
00033 /* ======================================================================== */
00034 /*                                                                          */
00035 /* Synopsis:        Output a single bit value to a digital I/O port         */
00036 /*                                                                          */
00037 /*                  bit    -  Digital bit number to be written, from        */
00038 /*                            0 to maximum number of  valid bits - 1        */
00039 /*                  val    -  Value of that bit, 0 for a low value          */
00040 /*                            and 1 for a high value.                       */
00041 /*                                                                          */
00042 /****************************************************************************/
00043 void BoardIO_write_bit( int baseaddr, int bit, int val)
00044 {
00045     int port;
00046     int oldval, realbit;
00047 
00048     // Make sure that the value is in range
00049     if ( val != 0 ) {  
00050         val = 1;  
00051     }
00052 
00053     // From bit 0 -> 39, calculate the port and bit
00054     port = (bit >> 3);
00055 
00056     printf( "Port is [%d] \t", port );
00057 
00058     realbit = (bit & 0x07);
00059 
00060     printf( "RealBit is [%d] \t", realbit );
00061 
00062     // Check for incorrect port number
00063     if ( port >= 2 ) {  port = 1;  }
00064 
00065     // Perform read from board
00066     oldval = inp( baseaddr + port );
00067 
00068     printf( "Value is [%d] \t", oldval );
00069 
00070     // Set or reset the required
00071     oldval = (val) ? (oldval | realbit) : (oldval & (~realbit));
00072 
00073     printf( "New Value is [%d] \n", oldval );
00074 
00075     // Perform write to board
00076     outp( baseaddr + port, oldval );
00077 }
00078 
00079 /****************************************************************************/
00080 /*                                                                          */
00081 /* Function/Macro:   BoardIO_read_bit                                        */
00082 /*                                                                          */
00083 /* ======================================================================== */
00084 /*                                                                          */
00085 /* Synopsis:      Input a single bit value from a digital I/O port          */
00086 /*                                                                          */
00087 /*               bit - bit number to read, starting at 0                    */
00088 /*                                                                          */
00089 /****************************************************************************/
00090 int BoardIO_read_bit(int baseaddr, int bit)
00091 {
00092     int port;
00093     int val, realbit;
00094 
00095     // From bit 0 -> 39, calculate the port and bit
00096     port    = ( bit >> 3   );
00097     realbit = ( bit & 0x07 );
00098 
00099     // Perform read from board
00100     val = inp( baseaddr + port );
00101     
00102     // Return 1 if bit is set, or 0 if not set
00103     return ((val & realbit) ? 1 : 0);
00104 }
00105 
00106 /****************************************************************************/
00107 /*                                                                          */
00108 /* Function/Macro:   BoardIO_enable                                         */
00109 /*                                                                          */
00110 /* ======================================================================== */
00111 /*                                                                          */
00112 /* Synopsis:     Enable a digital I/O group                                 */
00113 /*                                                                          */
00114 /****************************************************************************/
00115 void BoardIO_enable(int baseaddr, int enable_offset, int enable_value)
00116 {
00117     // Write enable value to group enable register
00118     outp( baseaddr + enable_offset, enable_value );
00119 }
00120 
00121 /****************************************************************************/
00122 /*                                                                          */
00123 /* Function/Macro:   BoardIO_disable                                        */
00124 /*                                                                          */
00125 /* ======================================================================== */
00126 /*                                                                          */
00127 /* Synopsis:     Disable a digital I/O group                                */
00128 /*                                                                          */
00129 /****************************************************************************/
00130 void BoardIO_disable(int baseaddr, int enable_offset)
00131 {
00132     // Write 0 to group enable register
00133           outp( baseaddr + enable_offset, 0x00);
00134 }
00135  
00136 #include <stdio.h>
00137 #include <stdlib.h>
00138 #include <conio.h>
00139 #include <i86.h>
00140 
00141 #include "board.h"
00142 
00143 /****************************************************************************/
00144 /*                                                                          */
00145 /* Function/Macro:  BoardIO_write()                                         */
00146 /*                                                                          */
00147 /* ======================================================================== */
00148 /*                                                                          */
00149 /* Synopsis:        Output a byte to a digital I/O port                     */
00150 /*                                                                          */
00151 /****************************************************************************/
00152 void BoardIO_write( int baseaddr, int port, int val )
00153 {
00154     outp( baseaddr + port, val );
00155 }
00156 
00157 /****************************************************************************/
00158 /*                                                                          */
00159 /* Function/Macro:  BoardIO_read()                                          */
00160 /*                                                                          */
00161 /* ======================================================================== */
00162 /*                                                                          */
00163 /* Synopsis:       Input a byte from a digital I/O port                     */
00164 /*                                                                          */
00165 /****************************************************************************/
00166 int BoardIO_read( int baseaddr, int port )
00167 {
00168    return (  inp( baseaddr + port )  );
00169 }
00170 
00171 /****************************************************************************/
00172 /*                                                                          */
00173 /* Function/Macro:   BoardIO_write_bit()                                    */
00174 /*                                                                          */
00175 /* ======================================================================== */
00176 /*                                                                          */
00177 /* Synopsis:        Output a single bit value to a digital I/O port         */
00178 /*                                                                          */
00179 /*                  bit    -  Digital bit number to be written, from        */
00180 /*                            0 to maximum number of  valid bits - 1        */
00181 /*                  val    -  Value of that bit, 0 for a low value          */
00182 /*                            and 1 for a high value.                       */
00183 /*                                                                          */
00184 /****************************************************************************/
00185 void BoardIO_write_bit( int baseaddr, int bit, int val)
00186 {
00187    int port;
00188    int oldval, realbit;
00189 
00190    // Make sure that the value is in range
00191    if ( val != 0 ) {  
00192       val = 1;  
00193    }
00194 
00195    // From bit 0 -> 39, calculate the port and bit
00196    port = (bit >> 3);
00197 
00198    printf( "Port is [%d] \t", port );
00199 
00200    realbit = (bit & 0x07);
00201 
00202    printf( "RealBit is [%d] \t", realbit );
00203 
00204    // Check for incorrect port number
00205    if ( port >= 2 ) {  port = 1;  }
00206 
00207    // Perform read from board
00208     oldval = inp( baseaddr + port );
00209 
00210    printf( "Value is [%d] \t", oldval );
00211 
00212    // Set or reset the required
00213    oldval = (val) ? (oldval | realbit) : (oldval & (~realbit));
00214 
00215    printf( "New Value is [%d] \n", oldval );
00216 
00217    // Perform write to board
00218     outp( baseaddr + port, oldval );
00219 }
00220 
00221 /****************************************************************************/
00222 /*                                                                          */
00223 /* Function/Macro:   BoardIO_read_bit                                       */
00224 /*                                                                          */
00225 /* ======================================================================== */
00226 /*                                                                          */
00227 /* Synopsis:      Input a single bit value from a digital I/O port          */
00228 /*                                                                          */
00229 /*               bit - bit number to read, starting at 0                    */
00230 /*                                                                          */
00231 /****************************************************************************/
00232 int BoardIO_read_bit(int baseaddr, int bit)
00233 {
00234    int port;
00235    int val, realbit;
00236 
00237    // From bit 0 -> 39, calculate the port and bit
00238    port    = ( bit >> 3   );
00239    realbit = ( bit & 0x07 );
00240 
00241    // Perform read from board
00242    val = inp( baseaddr + port );
00243    
00244    // Return 1 if bit is set, or 0 if not set
00245    return ((val & realbit) ? 1 : 0);
00246 }
00247 
00248 /****************************************************************************/
00249 /*                                                                          */
00250 /* Function/Macro:   BoardIO_enable                                         */
00251 /*                                                                          */
00252 /* ======================================================================== */
00253 /*                                                                          */
00254 /* Synopsis:     Enable a digital I/O group                                 */
00255 /*                                                                          */
00256 /****************************************************************************/
00257 void BoardIO_enable(int baseaddr, int enable_offset, int enable_value)
00258 {
00259    // Write enable value to group enable register
00260    outp( baseaddr + enable_offset, enable_value );
00261 }
00262 
00263 /****************************************************************************/
00264 /*                                                                          */
00265 /* Function/Macro:   BoardIO_disable                                        */
00266 /*                                                                          */
00267 /* ======================================================================== */
00268 /*                                                                          */
00269 /* Synopsis:     Disable a digital I/O group                                */
00270 /*                                                                          */
00271 /****************************************************************************/
00272 void BoardIO_disable(int baseaddr, int enable_offset)
00273 {
00274    // Write 0 to group enable register
00275         outp( baseaddr + enable_offset, 0x00);
00276 }

Generated on Sun Oct 14 18:46:40 2001 for Standard J2K Library by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001