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 Û> #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 Û> #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.