Member Login
Search
Jump to a Date
Sponsored Communities
Cool stuff
Twitter Feed
Neat Stuff

Visit our shop for nerds in control lifestyle products.
Thermal Overload
The threads that wouldn't die...
- PC reliability?
- Windows, real time
- PID loops
- PCs vs. PLCs
- Replacing people
- MS 'monopoly'?
- Software quality
- Where do we go from here?
- Why pay?
- PC reliability?
- Windows, real time
- PID loops
- PCs vs. PLCs
- Replacing people
- MS 'monopoly'?
- Software quality
- Where do we go from here?
- Why pay?
Fortune
"Sometimes I simply feel that the whole world is a cigarette and I'm
the only ashtray."
the only ashtray."
RSS Feed
www.control.com/rss/
To get a personalized feed, become a member at no cost.
Hi all,
I made an interface for my parallel PC-port, according to the instructions in The Robot Builder's Bonanza, by Gordon McComb.
When using it under DOS, everything works fine. eg I send 255 to the datalines and all lines go high. When I send 0 all lines go low.
Now follows my problem. I am programming some Windows interface using Delphi. A GUI is much easier to use than a text based program like the one I wrote to use in DOS (using QBasic).
But apparently some bits are forced high by Windows, and others low. When I send 255 to the dataregister, for example, all outputs go high for a very short period of time (blink), and then they go low again, leaving only databits 0 and 6 high. When I want to take all low, bits 0 and 6 go low and immediately high again. As you know this is rather inconvenient: when I want a motor to stop, it has to stop, and not (randomly) turn...
The bits I spoke of go high when Windows is started, so I suppose that Windows is the source of my problem.
For testing, I used an old Olivetti M290. (I don't want to risk blowing up the motherboard of my new computer while testing). Because of limited PC-resources, I used Windows 3.1. I programmes in Delphi 1 (16 bit).
Can anyone tell me why the datalines are forced the way they are (by Windows)? And is there a way around this?
Greetings,
Gert Love
I made an interface for my parallel PC-port, according to the instructions in The Robot Builder's Bonanza, by Gordon McComb.
When using it under DOS, everything works fine. eg I send 255 to the datalines and all lines go high. When I send 0 all lines go low.
Now follows my problem. I am programming some Windows interface using Delphi. A GUI is much easier to use than a text based program like the one I wrote to use in DOS (using QBasic).
But apparently some bits are forced high by Windows, and others low. When I send 255 to the dataregister, for example, all outputs go high for a very short period of time (blink), and then they go low again, leaving only databits 0 and 6 high. When I want to take all low, bits 0 and 6 go low and immediately high again. As you know this is rather inconvenient: when I want a motor to stop, it has to stop, and not (randomly) turn...
The bits I spoke of go high when Windows is started, so I suppose that Windows is the source of my problem.
For testing, I used an old Olivetti M290. (I don't want to risk blowing up the motherboard of my new computer while testing). Because of limited PC-resources, I used Windows 3.1. I programmes in Delphi 1 (16 bit).
Can anyone tell me why the datalines are forced the way they are (by Windows)? And is there a way around this?
Greetings,
Gert Love
Me personally i designed my Parallel Port Card As A ISA card.. That interfaces thru its own 6522 with opto-couplers. but hey thats me......anyway that is an issue i ran into as well
those lines are actually reset lines that why your printer init's at Restarts have you noticed that ?? ( is there a solution ??) Possibly!
yes..throw TTL Inverters Gates on the outputs of the LPT port then resource around that as well or .look at the LPT port in bios.. change it to flip the two address's around then you can recode around that as well then look in windows and UNLINSTALL all refrences to the LPT
port...drivers ect some mother boards this works some it doesn't...best solution?? use a 386/486 win95 or JUST USE DOS..and Code in VB4 dos pretty simple.(BUT FUN AS HELL )
another solution is to use the GAME port as well.
those lines are actually reset lines that why your printer init's at Restarts have you noticed that ?? ( is there a solution ??) Possibly!
yes..throw TTL Inverters Gates on the outputs of the LPT port then resource around that as well or .look at the LPT port in bios.. change it to flip the two address's around then you can recode around that as well then look in windows and UNLINSTALL all refrences to the LPT
port...drivers ect some mother boards this works some it doesn't...best solution?? use a 386/486 win95 or JUST USE DOS..and Code in VB4 dos pretty simple.(BUT FUN AS HELL )
another solution is to use the GAME port as well.
The problem is easy. Instead of using the ground (pin 22) to each data line, use them in pairs to each other. E.g. use Data pin 1 and 2 as a switch and and so on. Only thing here is that you will have 4 outputs instead of 8. But the reset of windows or pc will not affect the circuit.
Gert Love:
> But apparently some bits are forced high by Windows, and others low.
> When I send 255 to the dataregister, for example, all outputs go high
> for a very short period of time (blink), and then they go low again,
> leaving only databits 0 and 6 high. When I want to take all low, bits
> 0 and 6 go low and immediately high again.
I'm not familiar with this under Windows, but in general you have to somehow convince it that there is no printer port, so it stops trying to manage it for you.
You could try disabling the printer port driver, or configuring its I/O address to something that doesn't exist.
> As you know this is rather inconvenient: when I want a motor to stop,
> it has to stop, and not (randomly) turn...
Note that if it's anything even vaguely dangerous, you shouldn't be letting Windows anywhere near it (or, quite possibly, any PCs).
> For testing, I used an old Olivetti M290. (I don't want to risk
> blowing up the motherboard of my new computer while testing). Because
> of limited PC-resources, I used Windows 3.1. I programmes in Delphi 1
> (16 bit).
Be aware that this can differ a great deal between different versions of Windows; in particular, I believe Windows NT won't let you do this at all, you *have* to go through a driver.
Jiri
--
Jiri Baum <jiri@baum.com.au> http://www.csse.monash.edu.au/~jirib
MAT LinuxPLC project --- http://mat.sf.net --- Machine Automation Tools
> But apparently some bits are forced high by Windows, and others low.
> When I send 255 to the dataregister, for example, all outputs go high
> for a very short period of time (blink), and then they go low again,
> leaving only databits 0 and 6 high. When I want to take all low, bits
> 0 and 6 go low and immediately high again.
I'm not familiar with this under Windows, but in general you have to somehow convince it that there is no printer port, so it stops trying to manage it for you.
You could try disabling the printer port driver, or configuring its I/O address to something that doesn't exist.
> As you know this is rather inconvenient: when I want a motor to stop,
> it has to stop, and not (randomly) turn...
Note that if it's anything even vaguely dangerous, you shouldn't be letting Windows anywhere near it (or, quite possibly, any PCs).
> For testing, I used an old Olivetti M290. (I don't want to risk
> blowing up the motherboard of my new computer while testing). Because
> of limited PC-resources, I used Windows 3.1. I programmes in Delphi 1
> (16 bit).
Be aware that this can differ a great deal between different versions of Windows; in particular, I believe Windows NT won't let you do this at all, you *have* to go through a driver.
Jiri
--
Jiri Baum <jiri@baum.com.au> http://www.csse.monash.edu.au/~jirib
MAT LinuxPLC project --- http://mat.sf.net --- Machine Automation Tools
Yup. It's not simply a WINDOWS problem. For a through review, read HOW TO BUILD YOUR OWN LOW-COST DATA ACQUISTION AND DISPLAY DEVICES, by Jeffrey Hirst (Tab Publications). May be available via amazon.com
Please, do you have found a solution ? I've got the same problem ... with Win98 SE when I progam output by Labview soft
Thanks
Christian
Thanks
Christian
Check out this link: http://www.lvr.com/parport.htm.
You need a special driver for acessing the paralell port under Windows.
Good luck!
Nils
You need a special driver for acessing the paralell port under Windows.
Good luck!
Nils
Your use of this site is subject to the terms and conditions set forth under Legal Notices and the Privacy Policy. Please read those terms and conditions carefully. Subject to the rights expressly reserved to others under Legal Notices, the content of this site and the compilation thereof is © 1999-2009 Nerds in Control, LLC. All rights reserved.
Our Advertisers
Help keep our servers running...
Patronize our advertisers!
Patronize our advertisers!




