385 lines
18 KiB
Plaintext
385 lines
18 KiB
Plaintext
|
||
|
||
|
||
8i8o Documentaci¢n
|
||
del Software
|
||
|
||
Indice
|
||
|
||
|
||
1 ¨ Que software incluye el kit ?
|
||
2 Descripci¢n de comandos.
|
||
3 Primeros pasos.
|
||
|
||
|
||
4 Creaci¢n de un programa ejemplo DEMO.C
|
||
|
||
5 Preguntas y Respuestas.
|
||
6 Puntos de consulta directa.
|
||
|
||
|
||
|
||
|
||
NOTA:
|
||
Todas las referencias que se hagan aqui a la programaci¢n
|
||
seran basadas en el lenguaje C, ya que para otros lenguajes
|
||
las librerias a utilizar seran las mismas, asi como los
|
||
nombre y operaciones internas de las funciones.
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
¨ Que software incluye el kit ?
|
||
|
||
|
||
Disco 1: [CONTENIDO]
|
||
|
||
|
||
soft_doc.txt Documentaci¢n del software ( texto MS-DOS ).
|
||
hard_doc.txt Documentaci¢n del hardware ( texto MS-DOS ).
|
||
softhard.hlp D. Software y Hardware ( Formato WinHELP ).
|
||
|
||
InfoMund.gif Imagen del logotipo de InfoMundo
|
||
8i8o_pb .gif Imagen del circuito prototipo 8i8o_pb
|
||
conexion.txt Ideas de conexiones frecuentes.
|
||
catalogo.txt Lista de productos ofrecidos por InfoMundo.
|
||
|
||
lib_tc\prn_cnt?.lib Librerias en C, para Tiny, Medium, Compact, Large y Huge .
|
||
prn_cnt .h Cabeceras para las librerias.
|
||
demo .c Demo completo de una utilizaci¢n global.
|
||
demo .exe Programa demo.c compilado
|
||
kit .c Programa ejemplo.
|
||
|
||
lib_cp\prn_cnt .lib Librerias para Clipper.
|
||
prn_cnt .h Cabeceras de las librerias.
|
||
io .prj Fuente en clipper ( para escribir y leer ).
|
||
|
||
lib_vb\prn_cnt .vbx Librerias en Visual Basic ( ver 3.0 >> ).
|
||
puertos .dll .DLL para el control de los puertos en VB.
|
||
control .bas Demostraci¢n de las librerias para VB.
|
||
|
||
infomund\infomund.hlp Archivo en formato winHELP, que habla de IM
|
||
|
||
-------------------------------------------------------------------------------
|
||
Descripci¢n de comandos.
|
||
|
||
Û> Init_all Û> Register
|
||
Û> Reset_all
|
||
Û> Lee_Salidas Û> Lee_Salida
|
||
Û> Escribe_Salidas Û> Escribe_Salida
|
||
Û> Lee_Entradas Û> Lee_Entrada
|
||
|
||
|
||
/**************************************************************************\
|
||
| |
|
||
| Esta rutina debe ser llamada al iniciar el programa que use las librerias. |
|
||
| |
|
||
| Es la encargada de poner a cero todas la salidas, al principio y al salir. |
|
||
| |
|
||
| |
|
||
| Parametros de Entrada: ( ninguno ) |
|
||
| Parametros de Salida: |
|
||
| OK Todo ha ido bien. |
|
||
| ERROR_EN_ATEXIT Error registrando funci¢n |
|
||
| FUNCION_YA_REGISTRADA No es la 1¦ vez |
|
||
| |
|
||
\**************************************************************************/
|
||
|
||
Û> int Init_all(void);
|
||
|
||
/**************************************************************************\
|
||
| |
|
||
| WARNING: |
|
||
| El uso de la siguiente funci¢n esta indicada solo para usuarios |
|
||
| experimentados, se debe usar en lugar de la funci¢n anterior. |
|
||
| |
|
||
| Parametros de Entrada: |
|
||
| ( LEER/ESCRIBIR ) // L/E los registros del fich|
|
||
| ( %s ) // _ero %s |
|
||
| |
|
||
| Parametros de Salida: |
|
||
| 1 Ok! OK |
|
||
| -1 Fallo desconocido FALLO_DESCONOCIDO |
|
||
| -2 Archivo no existe NO_ARCHIVO |
|
||
| -3 Error archivo no valido ARCHIVO_INCORRECTO |
|
||
| |
|
||
\**************************************************************************/
|
||
|
||
Û> int Register( char leer_escribir, char *file );
|
||
|
||
/**************************************************************************\
|
||
| |
|
||
| Resetea todas las salidas y las pone a cero. |
|
||
| |
|
||
\**************************************************************************/
|
||
|
||
Û> void Reset_all(void);
|
||
|
||
|
||
/**************************************************************************\
|
||
| |
|
||
| Obtiene el estado de las salidas ( On/Off ), de la ampliacion AMPL. |
|
||
| |
|
||
| Parametros de Entrada: |
|
||
| ampl Ampliaci¢n donde debemos mirar |
|
||
| estados Puntero a estructura con los estados |
|
||
| |
|
||
| Parametros de Salida: |
|
||
| char 1Byte con los estados |
|
||
| |
|
||
| NOTA: si &estados es NULL, solo se devolvera el char de salida. |
|
||
\**************************************************************************/
|
||
|
||
Û> unsigned char Lee_Salidas( char ampl, ESTADOS *estados );
|
||
|
||
/**************************************************************************\
|
||
| |
|
||
| Obtiene el estado de una salida ( On/Off ), cualquiera. |
|
||
| |
|
||
| Parametros de Entrada: |
|
||
| salida ( Si 1 ampl. 0 a 7 ) |
|
||
| ( Si 10 ampl. 0 a 80 ) |
|
||
| |
|
||
| Parametros de Salida: |
|
||
| char 1Byte con el estado |
|
||
| |
|
||
\**************************************************************************/
|
||
|
||
Û> unsigned char Lee_Salida( char salida );
|
||
|
||
/**************************************************************************\
|
||
| |
|
||
| Escribe la variable 'estados' ( On/Off ), en la ampliacion AMPL. |
|
||
| |
|
||
| Parametros de Entrada: |
|
||
| ampl Ampliaci¢n donde debemos mirar |
|
||
| estados Puntero a estructura con los estados |
|
||
| estadosb Byte con los estados |
|
||
| |
|
||
| Parametros de Salida: |
|
||
| char 1Byte con los estados |
|
||
| |
|
||
| NOTA: si &estados es NULL, se utilizar el char con los estados. |
|
||
\**************************************************************************/
|
||
|
||
Û> unsigned char Escribe_Salidas( char ampl, ESTADOS *estados, char estadosb );
|
||
|
||
/**************************************************************************\
|
||
| |
|
||
| Parametros de Entrada: |
|
||
| salida ( Si 1 ampl. 0 a 3 ) |
|
||
| ( Si 10 ampl. 0 a 80 ) |
|
||
| estado ( ON / OFF ) |
|
||
| |
|
||
| Parametros de Salida: |
|
||
| char 1Byte con el estado |
|
||
| |
|
||
\**************************************************************************/
|
||
|
||
Û> unsigned char Escribe_Salida( char salida, char estado );
|
||
|
||
|
||
/**************************************************************************\
|
||
| |
|
||
| Lee las entradas y la almacena en la variable estados. |
|
||
| |
|
||
| Parametros de Entrada: |
|
||
| ampl Ampliaci¢n donde debemos mirar |
|
||
| estados Puntero a estructura con los estados |
|
||
| |
|
||
| Parametros de Salida: |
|
||
| char 1Byte con los estados |
|
||
| |
|
||
| NOTA: si &estados es NULL, solo se devolvera el char de salida. |
|
||
\**************************************************************************/
|
||
|
||
Û> unsigned char Lee_Entradas( char ampl, ESTADOS *estados );
|
||
|
||
/**************************************************************************\
|
||
| |
|
||
| Lee una entrada cualquiera. |
|
||
| |
|
||
| Parametros de Entrada: |
|
||
| entrada ( Si 1 ampl. 0 a 7 ) |
|
||
| ( Si 10 ampl. 0 a 80 ) |
|
||
| |
|
||
| Parametros de Salida: |
|
||
| char 1Byte con el estado |
|
||
| |
|
||
\**************************************************************************/
|
||
|
||
Û> unsigned char Lee_Entrada( char entrada );
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
Primeros pasos.
|
||
|
||
En esta secci¢n describiremos los principios b sicos para utilizar
|
||
nuestro Software.
|
||
|
||
Junto con el programa tenemos que crear un proyecto en el que se
|
||
incluyan nuestro programa y la libreria correspondiente al modelo
|
||
de memoria que estemos utilizando.
|
||
|
||
En primer lugar antes de empezar a realizar operaciones con el 8i8o
|
||
deberemos indicar en que puerto se encuentra, cargando la variable
|
||
|
||
Û> Lpt_usado = [1:Ltp1, 2:Lpt2, 3:Lpt3]
|
||
|
||
acto seguido debemos resetear todas las salidas:
|
||
|
||
Û> #include "prn_cnt"
|
||
|
||
Û> void main( void )
|
||
Û> {
|
||
Û> Lpt_usado = 1;
|
||
Û> reset_all();
|
||
Û> }
|
||
|
||
la funcion reset_all, puede ser sustituida por 'Register', esta
|
||
ultima esta indicada cuando se ha salido voluntariamente de su
|
||
programa y quiere guardar en un archivo el estado de las salidas,
|
||
de modo que al volver a entrar todo siga igual, sin ninguna
|
||
alteraci¢n. ( Para que al salir del programa no se reseteen las
|
||
salidas, basta con no llamar a la funcion reset_all ).
|
||
|
||
para escribir en el '8i8o' podemos utilizar una de las dos
|
||
funciones disponibles:
|
||
|
||
'Escribe_Salida' o 'Escribe_Salidas' la diferencia
|
||
reside en que a la primera le indicamos la salida f¡sica y el
|
||
estado ON, OFF. La segunda sirve para poner en el estado que deseemos
|
||
la ampliaci¢n, es decir, seleccionar el estado de los 8 bit's de golpe.
|
||
|
||
Û> #include <stdio.h>
|
||
Û> #include "prn_cnt"
|
||
|
||
Û> void main( void )
|
||
Û> {
|
||
Û> int salida, estado;
|
||
Û> Lpt_usado = 1;
|
||
Û> reset_all();
|
||
|
||
|
||
Û> do{
|
||
Û> printf( "\n Introduzca Salida y Estado [1:ON, 0:OFF] " );
|
||
Û> printf( "\n estado > 1 Termina el Programa. " );
|
||
Û> scanf ( "%d %d", &salida, &estado );
|
||
Û> Escribe_Salida( salida, estado );
|
||
Û> }while( estado<=1 );
|
||
|
||
Û> }
|
||
|
||
|
||
las funciones destinadas a la lectura se usan de igual forma que
|
||
las anteriores para la escritura, existiendo igualmente dos funciones
|
||
para leer una salida determinada o leer una ampliaci¢n de golpe,
|
||
se¤alar que las entras al '8i8o' pueden funcionar directamente como
|
||
buses de datos digitales y no solo anal¢gicos.
|
||
|
||
|
||
Û> #include <conio.h>
|
||
Û> #include "prn_cnt"
|
||
|
||
Û> void main( void )
|
||
Û> {
|
||
Û> unsigned char estados;
|
||
Û> Lpt_usado = 1;
|
||
Û> reset_all();
|
||
|
||
|
||
Û> cprintf( "\n Pulse una tecla para acabar " );
|
||
Û> cprintf( "\n 1 entrada de datos ON " );
|
||
Û> cprintf( "\n 0 entrada de datos OFF " );
|
||
Û> do{
|
||
Û> gotoxy( 10, 15 );
|
||
Û> estados = Lee_Salidas( 1, NULL );
|
||
printf( "\n%d %d %d %d %d %d %d %d", ( estado & 0x80 ) != 0,
|
||
( estado & 0x40 ) != 0,
|
||
( estado & 0x20 ) != 0,
|
||
( estado & 0x10 ) != 0,
|
||
|
||
( estado & 0x08 ) != 0,
|
||
( estado & 0x04 ) != 0,
|
||
( estado & 0x02 ) != 0,
|
||
( estado & 0x01 ) != 0 );
|
||
|
||
Û> }while( !kbhit() );
|
||
|
||
Û> }
|
||
|
||
Como puedes ver, la programaci¢n de nuestro dispositivo es tan
|
||
sencilla como decir donde y que queremos hacer. El limite esta
|
||
en tu imaginaci¢n y conocimientos.
|
||
|
||
-------------------------------------------------------------------------------
|
||
Creaci¢n de un programa ejemplo DEMO.C
|
||
|
||
Vea fichero DEMO.C
|
||
|
||
Puntos importantes:
|
||
|
||
-Realiza una lectura continua del bus de entrada
|
||
-Controla la 1§ ampliaci¢n del 8i8o
|
||
-Al entrar comprueba que no se hubiera entrado
|
||
antes, recordando el estado de las salidas, register,
|
||
si al salir, todas las salidas estan a cero, se
|
||
elimina el archivo register, para que al volver a
|
||
entrar se reseteen las salidas.
|
||
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
Preguntas y Respuestas
|
||
|
||
|
||
Bien, de momento ninguno de nuestros clientes nos han planteado ninguna
|
||
respuesta, y esperamos que siga siendo asi, ya que eso es se¤al de la
|
||
buena documentaci¢n incluida y el sencillo manejo del '8i8o'.
|
||
|
||
De todas formas si tiene alguna pregunta, no dude en realizarnosla.
|
||
Aprovecho para realizar unas cuantas:
|
||
|
||
|
||
¨ Que complementos tengo para mi '8i8o' ?
|
||
|
||
Para saber que complementos, puede adquirir para su '8i8o' solo tiene
|
||
que editar el fichero CATALOGO.TXT.
|
||
|
||
|
||
¨ Quien es la asociaci¢n InfoMundo ?
|
||
|
||
Abre el fichero infomund.hlp, y enterate de quienes somos, que hacemos,
|
||
y por que no, unete a nosotros, colaborando en proyectos y debates.
|
||
|
||
-------------------------------------------------------------------------------
|
||
Puntos de consulta directa.
|
||
|
||
Puedes dirigirte a nosotros via e-mail:
|
||
|
||
infomundo@arrakis.es
|
||
guill@galileo.fie.us.es
|
||
|
||
por tel‚fono:
|
||
|
||
a los propios Creadores del 8i8o :
|
||
|
||
Francisco Lopez [hardware] -------> 568 xx xx
|
||
Francisco Millan [hardware] -------> 568 xx xx
|
||
Jos‚ David Guill‚n [software] -------> 561 xx xx
|
||
Josue [software] -------> 568 xx xx
|
||
|
||
a nuestra BBS:
|
||
|
||
8 nodos : xX XXx xX
|
||
|
||
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
F I N
|
||
-------------------------------------------------------------------------------
|
||
eof file.
|
||
|
||
|
||
|