Newsgroup: it.hobby.elettronica.digitale
Titolo: Problema con indirizzi LPT

Ciao a tutti,
anni fa mi sono fatto un data-logger che campiona da 0.1Hz
a 250 KHz un ingresso da 0 a 20V. Il tutto è collegato alla
porta parallela e mi tira fuori un grafico sul PC.
Ho sempre usato un vecchio 486, con un programma in GWBasic.
Adesso ho provato a collegarlo a questo portatile,
un ACER Aspire 1314LC, con Win XP Professional. Il programma
mi tira fuori il grafico, ma vuoto. Penso che gli indirizzi di
LPT che uso, &H378 e &H379, non siano validi per questo PC.
Anche se, dalle proprietà della LPT, sembrano essere quelli.
Ho provato anche &H278,&H279 e &H778,&H779. Niente.
Avete qualche idea ?
Grazie.
Giuliano
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Giuliano
Ciao Giuliano,
forse un'idea ce l'ho!
Sotto Windows la parallela non si può gestire con accessi diretti come fa il
tuo programma in GWbasic.
Peggio ancora se stiamo parlando di W2K o XP. Per poter usare il programma
devi usare altri metodi.
Se cerci su web troverai delle DLL pronte per leggere e/o scrivere (con VB)
su LPT.
Ciao
FACE ONE

 Avete qualche idea ?
E' colpa del sistema operativo che virtualizza tutte le periferiche,
tu credi di scrivere e leggere un port e invece stai interagendo con
il sistema operativo.
Dovresti lavorare a livello di kernel,o piu' semplicemente installare
un driver che ti permetta di accedere direttamente all'hardware.
So che ne esistono tantissimi ma non so darti un'indicazione precisa,
mi dispiace, prova a cercare con Google.

 mi dispiace, prova a cercare con Google.
Grazie a FACE ONE e a Valeria.
Però non sono ancora convinto, e vi spiego perchè (Ho appena fatto una
prova):
Se vado in GWBasic ed uso l'istruzione LPRINT, la mia laser HP 6L
stampa tutto correttamente. Se uso l'istruzione OUT &H378,dato, non
mi stampa niente. Continuo a pensare che si tratti solo una questione di
indirizzo.
Ciao e grazie ancora.


 indirizzo.
No, mi aggrego a loro, è proprio un problema di blocco da parte del sistema
operativo che non ti lascia accedere a basso livello alla porta parallela.
Ad ogni modo se non sbaglio l'istruzione LPRINT passa attraverso il sistema
operativo, e ne puoi avere una semplice conferma: se hai due stampanti dove
andrà a finire il testo stampato? Secondo me nella stampante impostata come
predefinita su windows. E' come l'istruzione BEEP, che fa suonare a windows
il suono wav predefinito.
Ti parlo un po' a lontani ricordi, perchè ho lasciato il basic da un pezzo,
ma sono piuttosto sicuro.
Adesso sparo un'idea che potrebbe essere benissimo una grande cazzata,
cmq...
prova a impostare la modalità di compatibilità su Win98/ME.
Io avevo fatto un programma che gestiva la parallela in Visual Basic e su
WinXP non andava.
Ho impostato questa modalità e adesso funziona correttamente.
--
...:::Zmaster:::...
DSL powered
zmast[ANTISPAMSYSTEM]@
freemail.it
www.zmaster.tk
Collaboratore del Media Player Project

 Ho impostato questa modalità e adesso funziona correttamente.
Presumo che dovrei cambiare la compatibilità del prompt di MS DOS.
Ho provato, ma non mi permette cambiamenti.
Odio XP, Windows e Bill Gates. (Non necessariamente in quest'ordine).
A questo punto ci rinuncio. Visto che ho altri PC userò quelli vecchi.
Grazie a te e agli altri.


 ha scritto nel messaggio
news:c1d2ba$c57$1...@news.newsland.it...
[cut]


 Scusami se mi sono dilungato un po'; spero di esserti stato utile.
Sicuramente sei stato utile. Adesso vedrň se riesco ad usarlo.
Quando c'era solo il DOS sapevo quasi tutto, adesso con Windows, non
ci capisco piů niente. (O quasi).


 A questo punto ci rinuncio. Visto che ho altri PC userò quelli vecchi.
E' normale che non ti permettano di accedere direttamente alla parallela
alla seriale e alle altre periferiche.... è per semplicemente per questione
di sicurezza.
Credo che nemmeno in Unix tu lo possa fare.... e quello mica l'ha fatto lo
Zio Bill :o)
Bye
W@lt

Un OS serio impedisce l'accesso diretto alla parallela.
Due strade:
* Riscrivi il codice (usando apposite DLL, come ti anno detto, o 
scrivendo un device-driver), Funziona bene ma costa tempo (anche perche 
GWBasic non usa le DLL če tantomeno permette di usare le DDK).
* Usa un SW che fa una cosa tipo IOperm di Linux, cioč apre ad un 
programma DOS qualunque la scrittura diretta su porte di I/O, senza 
dover modificare una riga di codice (e neppure ricompilare!). Lo trovi, 
free e con sorgente, su 
www.beyondlogic.org
. Funziona in modo non 
conforme agli standard ma č la strada per usare vecchio SW con I/O con 
OS moderni
-- 
VincenzoV
http://www.vincenzov.net
