[DLL] Is hetvolgende mogelijk onder XP met RS232

Pagina: 1
Acties:

  • kimjansen
  • Registratie: Maart 2001
  • Laatst online: 02:57

kimjansen

Nu ff niks...

Topicstarter
Ik ben bezig een projectje voor school te doen om gewichten te meten met een luidspreker. We hebben het een en ander al uitgedokterd, maar zitten nog met een dilemma, namelijk hoe we de gemeten data uit een ADC naar de PC toe krijgen. Onze docent is nogal simpel daarin en roept dat we de parallele poort moeten gebruiken omdat dat makkelijker is, nu ben ik niet zo'n fan hiervan, ik wil het met de seriele poort uitlezen.

Onder Windows 98 niet zo'n probleem maar onder Windows 2000 en XP wordt dit een wat lastiger klus. De opzet van het project is als volgt:

De spoel van de luidspreker zit in een osscilatiekringetje en de varierende blokgolf die hieruit komt wordt aan een one-shot aangeboden, van deze spanning wordt de gemiddelde waarde genomen en aan een ADC gegeven. Deze ADC (TLC549) geeft hem serieel uit op de neergaande flanken van de clockpuls.

Deze TLC549 heeft (voor de uitlezing) een chipselect, een clock ingang en een data uitgang waar 8 bits de analoge waarde aan de ingang weergeven. Ik had zo gedacht dat we de chipselect aan 1 van de pennen van de RS232 interface hangen bijvoorbeeld aan DTR en de clock aan RTS. Ik kan echter nergens iets vinden hoe ik dit in een DLL voor elkaar kan krijgen zodat ik in Delphi/C++/Labview zonder omslachtige functies de waarde uit kan lezen.

De data komt dan als volgt binnen:
1.) CS=1, ADC is bezig met conversie (DTR=1)
2.) CS=0, ADC zet waarde op uitgang, het MSB eerst (DTR=0)
3.) 7 clockpulsen geven de andere bits uit op RxD (RTS=1/0)
4.) CS=1, ADC gaat verder met conversie totdat volgende waarde opgevraagd dient te worden (DTR=1)

Geconcludeerd wil ik graag weten hoe ik zelf een DLL schrijf voor Windows 95 tot en met XP, die de DTR en RTS pennen een bepaalde waarde kan geven zo dat de DLL een waarde uitgeeft die juist is met de ingangswaarde van de ADC.

Speed kills, but beauty lives forever...


  • martijn_brinkers
  • Registratie: November 2001
  • Laatst online: 31-10-2025
Kijk hier eens

http://sourceforge.net/projects/tpapro/
Async Professional is a comprehensive communications toolkit for Borland Delphi, C++Builder, & ActiveX environments. It provides direct access to serial ports, TAPI, and the Microsoft Speech API. It supports faxing, terminal emulation, VOIP, & more.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
Directe toegang tot de pennen van de seriele poort is lastig, je zou dan :

- DLPortiIO moeten gebruiken
- Een of andere ioctl moeten gebruiken bij de bestaande driver ( vraag me af of die er is )
- Zelf een driver schrijven ( Kweenie hoeveel tijd je voor dit project hebt ? ;) )

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • itsme
  • Registratie: Februari 2000
  • Niet online
Probeer t eens met windows 9x code, t programma vervolgens onder xp opstarten onder Windows 98 compatibiliteitsmodus.

"If God wanted us to have unlimited free energy He would have put a giant fusion reactor in the sky"


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

its_me schreef op 29 September 2003 @ 09:04:
Probeer t eens met windows 9x code, t programma vervolgens onder xp opstarten onder Windows 98 compatibiliteitsmodus.
Dat gaat niet werken. XP is niet gek :) Dat zou meteen de hele structuur van XP ondermijnen.

We adore chaos because we like to restore order - M.C. Escher


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
its_me schreef op 29 September 2003 @ 09:04:
Probeer t eens met windows 9x code, t programma vervolgens onder xp opstarten onder Windows 98 compatibiliteitsmodus.
Denk dat je dan een "priviledged instruction" melding krijgt, ook al draai je onder compatibiliteitsmodus.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Dawai
  • Registratie: December 2000
  • Laatst online: 08-07 23:56

Dawai

HERiTAGE CHESS CREW

WinIO (http://www.internals.com):

WinIo - This library allows direct I/O port and physical memory access under Windows 9x/NT/2000 and XP. Version 2.0 provides faster I/O port access, better memory mapping support and can be used from non-administrative accounts under Windows NT/2000 and XP.

_/-\o_

Programmer: red-eyed, mumbling mammal capable of conversing with inanimate objects.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18-08 21:00

Creepy

Tactical Espionage Splatterer

Dawai schreef op 29 September 2003 @ 09:21:
WinIO (http://www.internals.com):

WinIo - This library allows direct I/O port and physical memory access under Windows 9x/NT/2000 and XP. Version 2.0 provides faster I/O port access, better memory mapping support and can be used from non-administrative accounts under Windows NT/2000 and XP.

_/-\o_
En zo zijn er nog 100 varianten waaronder DLPort I/O, DirectIO, portio etc. DLPort I/O was zelfs al aangedragen als tip :P

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • kimjansen
  • Registratie: Maart 2001
  • Laatst online: 02:57

kimjansen

Nu ff niks...

Topicstarter
Kan ik DLPort I/O dan ook direct de pennen CTS, DTR enzo besturen, dat kon ik er niet uithalen namelijk... Correct me if I'm wrong...
En het zelf schrijven van een DLL/driver moet te doen zijn als iemand me daarmee op weg wil helpen, ik heb er tot december voor :)...

Speed kills, but beauty lives forever...


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
kimjansen schreef op 29 september 2003 @ 16:40:
Kan ik DLPort I/O dan ook direct de pennen CTS, DTR enzo besturen, dat kon ik er niet uithalen namelijk... Correct me if I'm wrong...
En het zelf schrijven van een DLL/driver moet te doen zijn als iemand me daarmee op weg wil helpen, ik heb er tot december voor :)...
Met portio kun je io poorten aantsturen / uitlezen. Je zou zelf de documentatie van de uart moeten bekijken of je ook direct de pinnen kunt benaderen en hoe dat moet.

Het op weg helpen met het schrijven van een driver lijkt me op zich al een tijdrovende aangelegenheid. Je kunt dan het beste zoeken op het web of een boek aanschaffen.

Programming the WDM van Walter Oney http://www.oneysoft.com/ is een behoorlijk goed boek wat dat betreft.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18-08 21:00

Creepy

Tactical Espionage Splatterer

Als je trouwens de LPT poort gaat gebruiken heb je genoeg aan een porti/o variant en hoef je verder geen enkele moeite meer te doen voor het aansturen ervan :)
Misschien toch de tip van je leraar maar serieus nemen?
Overigens vraag ik me nog steeds af waarom je daar niet zo'n fan van bent aangezien het wat simpeler is aan te sturen.

[ Voor 21% gewijzigd door Creepy op 29-09-2003 16:54 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • kimjansen
  • Registratie: Maart 2001
  • Laatst online: 02:57

kimjansen

Nu ff niks...

Topicstarter
Ewm nou ik denk inderdaad dat we de parallele poort maar eens gaan gebruiken :P... Als we nog veel tijd over hebben kijk ik wel of ik het nog zo om kan bouwen naar een seriele variant... In ieder geval bedankt voor de moeite, het leek me simpeler te doen :D

edit:
En geen fan van omdat je normaal hier wat ander soortige randapparatuur aanplakt, zoals printers enzo, RS232 is toch iets gevorderder om aan de praat te krijgen... Onder 98 niet zo'n probleem maar XP en shit, wordt ff te veel gevraagd, blijkt nu

[ Voor 34% gewijzigd door kimjansen op 29-09-2003 17:08 ]

Speed kills, but beauty lives forever...


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
kimjansen schreef op 29 September 2003 @ 17:02:
Ewm nou ik denk inderdaad dat we de parallele poort maar eens gaan gebruiken :P...
Verstandig denk ik
En geen fan van omdat je normaal hier wat ander soortige randapparatuur aanplakt, zoals printers enzo, RS232 is toch iets gevorderder om aan de praat te krijgen... Onder 98 niet zo'n probleem maar XP en shit, wordt ff te veel gevraagd, blijkt nu
Snap niet goed wat je hiermee bedoelt eigenlijk.

Overigens kun je ook eens kijken wat je met EscapeCommFunction(....) kunt doen, maar ik vraag me af of dit voldoende is voor je. Bovedien, als je dit voor verschillende Windows versies wilt maken kom je vaak in de knoei met timing.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18-08 21:00

Creepy

Tactical Espionage Splatterer

kimjansen schreef op 29 September 2003 @ 17:02:
edit:
En geen fan van omdat je normaal hier wat ander soortige randapparatuur aanplakt, zoals printers enzo, RS232 is toch iets gevorderder om aan de praat te krijgen... Onder 98 niet zo'n probleem maar XP en shit, wordt ff te veel gevraagd, blijkt nu
Dan moet je eens wat beter zoeken naar andere apparatuur.
* Creepy heeft er LCD's, temp. sensors, relais, leds en spanning meters en generatortjes aan gehangen ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • kimjansen
  • Registratie: Maart 2001
  • Laatst online: 02:57

kimjansen

Nu ff niks...

Topicstarter
Ja, je ken er vanalles aanhangen maar vind het parallele poort gebeuren toch iets te uitgemolken, SPP/ECP/EPP, enz. Seriele data transmissie is toch meer in dan parallele...

Maar ik ga het gewoon simpel parallel doen, scheelt een hoop werk... Van mij part mag deze dicht.

Speed kills, but beauty lives forever...


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
Ik vraag me af waarom je parallel communiceren zo simpel en uitgemolken vindt? Electronisch gezien is het parallel communiceren problematischer dan serieel. ( Vandaar dat bijna alles tegenwoordig serieel is )

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18-08 21:00

Creepy

Tactical Espionage Splatterer

kimjansen schreef op 29 September 2003 @ 18:42:
. Seriele data transmissie is toch meer in dan parallele...
Serieel is uit, USB is in. Dus, wanneer ga je dat ding aan de USB poort hangen? ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
Creepy schreef op 30 September 2003 @ 09:06:
[...]

Serieel is uit, USB is in. Dus, wanneer ga je dat ding aan de USB poort hangen? ;)
USB is ook serieel :)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18-08 21:00

Creepy

Tactical Espionage Splatterer

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
Voor de volledigheid, hier http://www.freebsd.org/do...9-1/articles/serial-uart/ staat een tabelletje met de io registers en hun betekenis van de pc uart. ( 8250/16450/16550 )

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1