Foros de Electrónica

Comunidad de discusión sobre Automatización, Electrónica industrial, Microcontroladores y electrónica digital, Robótica, Domótica, Telemática, Tecnologías móviles, y muchos temas más.




Problemas con inportb y outportb de Turbo C++


       



#11  
EinSoldiatGott
Colaborador
Registrado: 04 Dic 2005
Mensajes: 968
citar
atmega128 escribió:
Yo lo uso con el software AVRDUDE:



Hola, he conseguido el giveio con su ejecutable e instrucciones
el link es este para el que le interese
http://files.filefront.com/giveiorar/;5247069;;/fileinfo.html

Sin embargo aún no me funciona Sad, debo de agregarle algo a mi código??? declarar alguna librería o dll?

Ya seguí estas instrucciones
Cita:
1. Run the LoadDrv utility with giveio.sys in the same directory and click the install button. This should copy giveio.sys to the systems directory, but I've found that it doesn't. Alternatively, just copy giveio.sys to C:\WINDOWS\system32\drivers.

2. In the LoadDrv utility, enter the full pathname of the location of giveio.sys (for example, c:\windows\system32\drivers\giveio.sys).

3. In LoadDrv, click the Start button.

4. This driver should now be started. If you want the driver to start whenever the computer is restarted proceed with the following steps.

5. In the Control Panel, open System and go to the hardware tab.

6. Click on the Device Manager button. This will open a new window.

7. In the Device Manager window, click on the View menu and select Show hidden devices. This will reveal a Non-Plug and Play Drivers icon in the file tree.

8. Expand the Non-Plug and Play Drivers tree.

9. Find and right click giveio and select Properties from the popup menu. This will bring up a window of the giveio Properties.

10. In the Properties window, select the Driver tab.

11. Select Automatic from the dropdown box for the type.

12. This change will take effect after you reboot the computer.


Me dice que la aplicación ya esta ejecutándose al darle start, y lo que hace es ponerme en alto todos los bits de salida del puerto.

Pero me voy a ver lo de los plugs & play no me aparece, aunque me encontré ahi el userport que había instalado antes y le di que se ejecutara automáticamente, reinicié pero no pasa nada.

Que windows utiliza usted??? voy a probar formateando e instalando un windows no modificado.

Saludos y gracias

#12  Creo haber encontrado algo sobre el tema.
Dackman

Registrado: 29 Ago 2006
Mensajes: 1
Ubicación: Argentina
citar
Primero que nada... hola a todos "Espero ayudarlos y que me ayuden", soy novato en el tema de la programacion en Turbo C y no tengo mucha idea.... pero me puse las pilas y encontre algo que creo se nos van a facilitar las cosas.

Disculpen pero tengo muy poco tiempo programando y cambie a Win XP y me lleve la gran sorpresa... he aqui que busco en internet y encontre LO SIGUIENTE QUE LES PASO A EXPLICAR:

YA LA MAYORIA SABE QUE WINXP TRABO LOS PUESTOS PARA QUE EL USUARIO "USERMODE" NO PUEDA HACER NADA O CASI NADA CON ELOS PERO UN TAL Craig Peacock QUE DESARROLLO EL FAMOSO """PORTTALK""" QUE PARA QUE VEAN ALGO TRAE ESTO DE EJEMPLO:

#include <stdio.h>
#include <windows.h>
#include <pt_ioctl.c>

void __cdecl main(void)
{
unsigned char value;
printf("IoExample for PortTalk V2.0\nCopyright 2001 Craig Peacock\nhttp://www.beyondlogic.org\n");
OpenPortTalk();
outportb(0x378, 0xFF);
value = inportb(0x378);
printf("Value returned = 0x%02X \n",value);
outp(0x378, 0xAA);
value = inp(0x378);
printf("Value returned = 0x%02X \n",value);
ClosePortTalk();
}

QUE NOS FACILITA LA PROGRAMACION CON TURBO C/C++ BAJO WINDOWS XP.

AL NO TENER MUCHA EXPERIENCIA EN PROGRAMACION BAJO TURBO C/C++ Y SUS DERIVADOS LES PONGO EL LINK DE DONDE LO BAJO Y ESPERO QUE PRUEBEN Y ME DIGAN SI LO HICIERON ANDAR YA QUE YO NO PUDE.

http://www.beyondlogic.org/porttalk/porttalk.htm

HICE LO QUE PUDE PERO NO ENCUENTRO LAS SIGUIENTES LIBRERIAS WINIOCTL.H Y WINDOWS.H QUE SON LAS QUE ME DAN ERROR CUANDO COMPILO EL PROGRAMITA DE EJEMPLO.

BUENO ESPERO QUE LES SEA UTIL Y MIENTRAS LO BUSCAN YO SIGO INTENTANDO HACER ALGO CON ESO.



Este mensaje contiene archivos adjuntos, para verlos debes estar registrado.

#13  Re: Creo haber encontrado algo sobre el tema.
EinSoldiatGott
Colaborador
Registrado: 04 Dic 2005
Mensajes: 968
citar
Hola, voy a probarlo pero no creo que funcione, yo ya probé como con 10 parches pero estan enfocados a pascal y en turbo c++ no me han funcionado.

Esas librerías que dice, solo vienen en turbo c++ 4.5, pero pueden conseguirse en internet y agregarlas, pero el problema es que windows.h provoca errores en algunas instrucciones tan sencillas como "delay"

Bueno eso sería todo en lo que puedo ayudarle Sad, yo también intenté liberar los puertos, pero ya me cancé de intentarlo y me cambié a visual basic.

Si puedo ayudarle en otra cosa solo me avisa

Saludos

#14  
Pampa Norte

Registrado: 14 Sep 2006
Mensajes: 4
Ubicación: Bs. As. , Argentina
citar
¿Probaste buscar si hay un parche para que turbo c corra en xp?

#15  
maunix
Colaborador
Registrado: 22 Oct 2005
Mensajes: 652
Ubicación: Cordoba, Argentina
citar
Pampa Norte escribió:
¿Probaste buscar si hay un parche para que turbo c corra en xp?


Mmmm, no creo que exista tal cosa porque no hay nada que parchar.

Turbo C es un compilador de 16 bits, que corre en DOS y está pensado para DOS --> acceso directo al hardware

Windows XP es un sistema operativo con 10 años de evolución posterior al turbo c, que encapsula las aplicaciones y no permite el acceso directo al hardware.

La solución sería usar un compilador que haga otro tipo de gestión, ya sea mediante un componente o mediante una dll que a su vez se comunique con güindows :D

Casualmente son estas cosas las que hay que cambiar cuando uno porta código de Windows a Linux y viceversa, solo para citar un ejemplo.

No es simplemente cargar un 'parche' y listo.

Saludos

#16  
leo_programer

Registrado: 01 Ago 2006
Mensajes: 56
Ubicación: Colombia
citar
lo que dice maunix es muy cierto, yo hice un programa en c++ con visual c++ y usando la libreria que decian al principio io.dll, este me permite tomar control absoluto del puerto paralelo, mas sin embargo creo que no lo libera o algo asi, no soy muy bueno en ingles y la descripcion de esta libreria http://www.geekhideout.com/iodll.shtml lo esta en este idioma, si a alguien le sirve cojanlo, no conozco turbo c++ pero segun lo que dicen, va a quedar dificil que puedan implementar esa dll con ese compilador, utilizen otro como lo recomienda maunix, me avisan, cuidensen...

#17  
Pampa Norte

Registrado: 14 Sep 2006
Mensajes: 4
Ubicación: Bs. As. , Argentina
citar
Yo estoy usando un programa llamado 12c prog v1.5 sirve para programar microcontroladores Atmel por el puerto paralelo. La cosa es que con win 98 funcionaba muy bien pero cuando instalé el xp dejó de funcionar justamente porque no podía acceder al puerto. Pude conseguir un parche que no se si es para el programa o para el xp y ahora funciona sin problemas. Por eso se me ocurrió decirte lo del parche, entiendo que hay distancias que salvar (este programa corre vajo win y no DOS) pero si el parche o lo que fuera actúa sobre el windows creo que eso no afecta.
El 12c prog v1.5 cuando lo baje estaba disponible en http://go.to/zackyfiles, tal vez puedas fijarte en ese lugar. No recuerdo de donde baje la dll que lo hizo funcionar pero en alguna carpeta de mi Pc lo debo tener y si te interesala busco y te la mando. Creo que no hay nada que perder. Suerte

#18  
EinSoldiatGott
Colaborador
Registrado: 04 Dic 2005
Mensajes: 968
citar
Pampa Norte escribió:
Yo estoy usando un programa llamado 12c prog v1.5 sirve para programar microcontroladores Atmel por el puerto paralelo. La cosa es que con win 98 funcionaba muy bien pero cuando instalé el xp dejó de funcionar justamente porque no podía acceder al puerto. Pude conseguir un parche que no se si es para el programa o para el xp y ahora funciona sin problemas. Por eso se me ocurrió decirte lo del parche, entiendo que hay distancias que salvar (este programa corre vajo win y no DOS) pero si el parche o lo que fuera actúa sobre el windows creo que eso no afecta.
El 12c prog v1.5 cuando lo baje estaba disponible en http://go.to/zackyfiles, tal vez puedas fijarte en ese lugar. No recuerdo de donde baje la dll que lo hizo funcionar pero en alguna carpeta de mi Pc lo debo tener y si te interesala busco y te la mando. Creo que no hay nada que perder. Suerte


Hola, si quiere puede subir su archivo, tal vez a alguien le sirva.

Pero Mau tiene razón y lo comprobé tras probar con varios "parches", tal vez estos funcionen para Pascal pero al menos a mi para Turbo c++ no me funcionaron, el detalle o la solución no solo es incluir una dll sino que debemos modificar nuestro programa y decirle que utilice esa dll, entonces si va a funcionar.

Así es como lo estoy haciendo en Visual Basic, agrego la inpout32.dll, y además debo compilar el programa con un módulo para esa dll.

Imagino que en Turbo c++ debe ser igual pero no se como decirle que utilice una dll Smile

Saludos

#19  
MaMu
Moderador
Registrado: 18 Abr 2005
Mensajes: 895
Ubicación: Argentina - Buenos Aires - Capital Federal
citar
A ver si despejo dudas, aqui va:

Con la aparicion de los sistemas operativos como el NT y los basados en el, han descartado las funciones que permitian el acceso a puertos del pc de forma directa, puesto a que esto, implicaba que el sistema operativo fuera "poco seguro", motivo por el cual se decidio que el usuario NO tuviera acceso directo al kernel, funcion de privilegio. Por esta razon, se hizo necesario estudiar en estos sistemas operativos, la forma de acceder al Kernel y asi poder controlar la lectura y escritura de los puertos.
Un usuario, solo tiene acceso a nivel usuario (administrador) pero.... las librerias, como las de enlace dinamico, las que conocemos como DLL, si tienen acceso directo al Kernel, pues, se instalan y ejecutan en ese lugar. El dato, es que las DLL las podemos controlar, y si podemos controlar una DLL, que esta a su vez controle el Kernel, estariamos controlando como usuarios el Kernel de una forma "indirecta", pero controlandolo al fin y al cabo, y asi logramos el cometido, controlar la escritura y lectura de puertos a nuesto gusto. DLL's para este fin hay muchas, usamos las que se nos amolde, o la que logramos encontrar.
Una tecnica muy buena, es encryptar la dll adentro del ejecutable, y expandirla e instalarla en run time, asi nos olvidamos de distribuirla junto con nuestro programa, ya que esta incorporada.

Saludos.

#20  
maunix
Colaborador
Registrado: 22 Oct 2005
Mensajes: 652
Ubicación: Cordoba, Argentina
citar
MaMu escribió:


Con la aparicion de los sistemas operativos como el NT y los basados en el, han descartado las funciones que permitian el acceso a puertos del pc de forma directa, puesto a que esto, implicaba que el sistema operativo fuera "poco seguro", motivo por el cual se decidio que el usuario NO tuviera acceso directo al kernel, funcion de privilegio. Por esta razon, se hizo necesario estudiar en estos sistemas operativos, la forma de acceder al Kernel y asi poder controlar la lectura y escritura de los puertos.


Exacto! solo que no fue por invento de Microsoft ni de su gente, sino que los Unix ya lo venían haciendo por más tiempo. Eso de encapsular aplicaciones :D

Jeje, Microsoft nos acercó algunas cosas, pero no las inventó ni mucho menos Wink

Todavía me acuerdo cuando yo usaba DOS en modo texto y tenía una conocida publicista que usaba su MAC de entonces, controlada con un mouse de 1 solo botón en un entorno totalmente gráfico 8)

 Responder



Google
 


 Temas de interés 
No hay mensajes nuevos Convertir de Puerto Paralelo a USB
No hay mensajes nuevos Como adquiero la señal de 20 sensores por un mismo puerto?
No hay mensajes nuevos Interface IrDA para el puerto serial
No hay mensajes nuevos Puerto infrarrojo IrDA para PC
No hay mensajes nuevos Activar registro del puerto paralelo

Foros de Electronica
|| Cuestiones Elementales de Electrónica || Fuentes de alimentacion || Circuitos de radio || Diseño de circuitos en general ||
|| Sistemas de Audio: Preamplificadores, Ecualizadores || Amplificadores || Reparación || Discusión ||
|| Microcontroladores y sistemas embebidos || Circuitos logicos combinacionales y secuenciales || Interfaces y Programacion || Dudas en general || Sistemas de Video || PC Hardware || Telematica y comunicaciones || Tecnologias moviles || Software Electronico || Robotica, Domotica y Mecatronica || Autotrónica || Automatizacion, Electronica industrial y de Potencia || Documentacion, circuitos y esquemas || Donde Las Ideas Convergen... || Tutoriales y Manuales || Proyectos Prácticos ||