elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Informática
| |-+  Electrónica
| | |-+  duda sobre manipulacion del puerto lpt
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: duda sobre manipulacion del puerto lpt  (Leído 5,339 veces)
MaLkAvIaN_NeT

Desconectado Desconectado

Mensajes: 213


MaLkAvIaN_NeT


Ver Perfil WWW
duda sobre manipulacion del puerto lpt
« en: 27 Junio 2006, 05:04 am »

Hola es la primera ves que quiero hacer una aplicación que controle el puerto paralelo, lo estoy haciendo en C#
primero me estuve leyendo un manual sobre el puerto paralelo y encontre lo siguiente:

Citar
Los puertos paralelos se denominan &h378 0 &h278 o &h3bc según la PC

luego en el ejemplo usa el &h378 pero como se yo cual debo usar?¿

gracias


En línea

a por las buenas ideas
BADBYTE-K
Knowledge is power, Diesel-K


Desconectado Desconectado

Mensajes: 2.329


Aprende todo lo que este a tu alkance


Ver Perfil WWW
Re: duda sobre manipulacion del puerto lpt
« Respuesta #1 en: 27 Junio 2006, 05:53 am »

Bueno, pues eso depende de lo que quieras hacer, ya sea deseas leer o escribir datos. y ademas depende de la pc porque no siempre son los mismos "numeritos"

por ejemplo, fijate aqui en la parte donde uso Out (vb6) y cheka cuando hago uso de inp fijate en las direcciones que uso.

http://foro.elhacker.net/index.php/topic,48748.0.html

Ahora, para mas detalles puedes leerte lo que dicen aqui en la parte titulada "PART 1 - Some basics of a parallel port"

http://www.codeproject.com/csharp/csppleds.asp

Es una pena que no haya una implementacion directa del .net framework para el puerto paralelo. ojala algun dia si

saludos



En línea

MaLkAvIaN_NeT

Desconectado Desconectado

Mensajes: 213


MaLkAvIaN_NeT


Ver Perfil WWW
Re: duda sobre manipulacion del puerto lpt
« Respuesta #2 en: 29 Junio 2006, 01:07 am »

Hola BADBYTE-K ,,, estaba leyendo tu post y en la parte que mencionas que es necesario sabernos la posicion de memoria

Citar
en XP puedes irte a propiedades de mi pc> ficha hardware > administrador de dispositivos >
puertos COM y LPT > da click en el + y luego posicionate en el LPT > click derecho > propiedades > dale a
la ficha recursos > y ahi tendras el intervalo entrada/salida del puerto...

hago esto y obtengo:
Intervalo de E/S  |  0378 - 037F
Intervalo de E/S  |  0778 - 077F

.. bien en el caso que use el primero, me gustaría saber la diferencia entre ambos o xq existen las dos opciones, te agradecería que respondieras.
En línea

a por las buenas ideas
BADBYTE-K
Knowledge is power, Diesel-K


Desconectado Desconectado

Mensajes: 2.329


Aprende todo lo que este a tu alkance


Ver Perfil WWW
Re: duda sobre manipulacion del puerto lpt
« Respuesta #3 en: 1 Julio 2006, 17:24 pm »

Hola

Bueno, no entiendo porque te aparecen dos, pero de igual forma, tienes 0378 - 037F el que interesa para estos casos. has pruebas con leds o con un tester(voltimetro, multimetro, etc.) aver si te trabaja con tu programa

saludos
En línea

MaLkAvIaN_NeT

Desconectado Desconectado

Mensajes: 213


MaLkAvIaN_NeT


Ver Perfil WWW
Re: duda sobre manipulacion del puerto lpt
« Respuesta #4 en: 3 Julio 2006, 00:43 am »

Hola gracias por la respuesta, ya logré hacer lo que quería,,, bueno en el ejemplo que me pasaste usa el void:

Código:
public class PortAccess
{[DllImport("inpout32.dll", EntryPoint="Out32")]
public static extern void Output(int adress, int value);
}

y cuando usas el void le mandas por ejemplo:

Código:
PortAccess.Output(888, 24);

lei tu ejemplo en vb 6.0 (manejo del puerto paralelo) y alli si usas

Código:
Out &H378, 16

pero no entiendo porque en  C# usa 888, alguien tiene alguna idea???,, solo para saber porque ya logre hacer la aplicación y funciona.

Salu2,, gracias por su antecion.

En línea

a por las buenas ideas
GrTk

Desconectado Desconectado

Mensajes: 185



Ver Perfil
Re: duda sobre manipulacion del puerto lpt
« Respuesta #5 en: 6 Julio 2006, 02:18 am »

Nananana...
Para C++ podes usar esto...

#include <conio.h>
#include <iostream.h>
#include <dos.h>

main(){

char puerto;
int puertoa,puertob,puertoc,dato;
cout << " ingrese la dir del puerto lpr\n"; // Uso el cout
cout << " 1) 378  2) 278 3) 3BC "; //que es como el prinf
                                               // es de la libreria iostream
cin >> puerto;

switch (puerto){
case '1':
puertoa= 0x378;
puertob= 0x379;
puertoc= 0x37A;
break;
case '2':
puertoa= 0x278;
puertob= 0x279;
puertoc= 0x27A;
break;
case '3':
puertoa= 0x3BC;
puertob= 0x3BD;
puertoc= 0x3BE;
break;
}
outport(puertoc,0x26); //Seteo el Bus de control
                                  //Para leer los bits 2 al 9

dato = inport(puertoa); // Leo los datos
cout << dato;  // los pongo en pantalla.

//En el caso de que quieras enviar informacion
//Del pin 2 al 9

ouport(puertoc,0x00); //Seteo el bus de control
                                 //Para escribir los bit del 2 al 9
int enviar=32;
outport(puertoa,enviar); // envia el 32
                                   // que seria 00100000
//El puerto b osea el 379, 279 .....
//son los pines 15 a 11
// y solo son entradas.
//podemos obtener la info
//asi:
//PD:. no hace falta setear nada para leer

dato = inport(puertob);

//Deberias hacer un enmascaramiento
//Para obtener el bit deseado...
//Por ejemplo si quiero obtener un 0 o un
//uno en el pin 15, deberia
dato = (inport(puertob)&0x08)/8;
//El 0x08 hace el enmascaramiento
// y para que no te de 0 o 8
// lo divido por 8

// Recorda que dentro de las computadoras
// las entradas estan en estado
//alto por las r de pull up
//osea las entradas estan en 1
//a menos que las mandes a masa (podes usar el
//pin 18 que es masa. Nunca olvides
//de conectar la masa del circuito.

getch();
}



/****************************************


El programa puede tener errores, lo escribi asi nomas
para que  tengas una idea...
cualquier cosa si qures mas info
contactate por msn o mail
nico_offspring@hotmail.com



*/



En línea

MaLkAvIaN_NeT

Desconectado Desconectado

Mensajes: 213


MaLkAvIaN_NeT


Ver Perfil WWW
Re: duda sobre manipulacion del puerto lpt
« Respuesta #6 en: 6 Julio 2006, 22:10 pm »

gracias por el code lo estuve probando, pero no entiendo para que sirve el enmascarmiento que dices.

bueno y en verdad yo estoy haciendolo con C# del .net, pues en vb 6.0 y C++ ya lo había logrado., en C# ya logre controlar unos leds, pero me quedaron algunas dudas. :huh:
En línea

a por las buenas ideas
GrTk

Desconectado Desconectado

Mensajes: 185



Ver Perfil
Re: duda sobre manipulacion del puerto lpt
« Respuesta #7 en: 18 Julio 2006, 04:14 am »

el enmascaramiento es para poder leer ese bit solo...

cuando tomas el puerto 378
suponete que lees el dato 00101011

ahora el tema, es muy lindo todo eso
pero yo quiero solo el 4bit, no el conjunto de los 8 bit
entonces lo que hago es una AND
al binario ese

00101011
AND
00001000
=
00001000

eso equivale al 8 en decimal (que es con lo que trabajas en c),
la verdad que es medio al pedo... pero bueno
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
DUDA : Punteros a bits individuales y su manipulacion « 1 2 »
Programación C/C++
lucaslopez0000 10 5,303 Último mensaje 21 Enero 2013, 18:37 pm
por Foxy Rider
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines