|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jun 2007
Messaggi: 96
|
[Assembler] USB?
salve,
qualcuno sa come comunicare tramite porta usb con assembler? oppure in alternativa quei "adattatori" USB-Seriale vengono visti come porte seriali a tutti gli effetti? (perché in questo caso la cosa si semplifica per i curiosi mi serve per un progetto universitario... ma il mio primo problema è stato come diavolo ci comunico? io che non ho porte seriali?? poi costruirò la periferica e tutto il resto uso win vista home premium a 32 bit se può essere utile... |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
|
Quote:
__________________
Khelidan |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Su Windows devi ad ogni costo passare dalle API di Windows. Sotto DOS non c'è lo stack USB.
Quindi l'assembler è la scelta peggiore per fare un programma del genere. |
|
|
|
|
|
#4 | |
|
Member
Iscritto dal: Jun 2007
Messaggi: 96
|
Quote:
cmq proverò con i convertitori usb-seriale... sperando di non doverne comprare 30 |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
|
Quote:
mi ha detto che quelli che funzionano meglio sono quelli che non hanno il filo di mezzo,hanno la porta usb collegata proprio fisicamente alla seriale!
__________________
Khelidan |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sì, ma ripeto: sotto Windows devi usare le API e sotto DOS non hai lo stack usb e quindi nemmeno il driver per la porta seriale virtuale.
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
|
quindi è impossibile accedere all'usb via assembly?
__________________
Khelidan |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Se è in DOS, può farlo. Anzi, è proprio quello si faceva (e ho fatto, sebbene in Turbo Pascal): accedere direttamente ai registri delle porte seriali, e installare l'hook per gestire il relativo interrupt.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
|
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Sì, ma lui non ha un seriale. Ha un adattatore USB-seriale. Ultima modifica di cionci : 08-04-2008 alle 15:34. |
|
|
|
|
|
|
#13 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
in tal caso usa il MASM; è possibile, ma non ti credere che userai le istruzioni IN e OUT perché su Windows NT chiamate a Ring3 non fanno altro che lanciare un'eccezione. semplicemente dovrai chiamare tramite assembly le API di Windows.
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Se usi il C# e la
System.Port.Serialport integrata puoi accedere alla seriale delle USB-Seriale come se fosse una seriale normale.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
Codice:
if (bResult)
{
// Under Windows NT/2000/XP, after calling InitializeWinIo,
// you can call _inp/_outp instead of using GetPortVal/SetPortVal
GetPortVal(0x378, &dwPortVal, 4);
SetPortVal(0x378, 10, 4);
Codice:
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();
In ogni caso io costruirei un mio wrapper sulle API di Windows in base alle specifiche esigenze. |
|
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sì ma OpenPortTalk() credo non faccia altro che chiamare una CreateFile
Almeno GiveIO funziona così: prima bisogna chiamare una CreateFile e dopo si possono usare le istruzioni IN e OUT. Edit: infatti: Codice:
PortTalk_Handle = CreateFile("\\\\.\\PortTalk",
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
|
|
|
|
|
|
#18 | |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
|
|
|
|
|
|
|
#19 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
|
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Ci sono, ma il topic parla di Assembly per cui, anche se è stato citato C#, mi astengo dall'intervenire.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:44.




















