Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di 810106
    Registrato dal
    Jun 2008
    Messaggi
    67

    Qui ci vuole un esperto...

    Salve programmatori, vi scrivo perchè mi servirebbe implementare su GNU/Linux un programma che comunica
    attraverso la porta seriale offrendo la possibilità di cambiare anche la configurazione dei pin.
    Ho cercato online un pò di info ma non trovo come si effettua l'I/O a basso livello. Ho visto che si accede
    alle porte attraverso gli indirizzi di I/O uilizzando prima ioperm(2), e poi le macro definite in `/usr/include/asm/io.h' oppure utilizzando lseek(2), read(2) e write(2) sul file `/dev/port'. Ora quello che vorrei sapere
    è come si fa per leggere i PIN o cambiare la configurazione di essi utilizzando gli indirizzi I/O.
    Spero che qualcuno mi sappia rispondere... Grazie. Christian.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Beh ... prima di tutto dovresti dare una lettura al regolamento ... (linguaggio e titolo) ...

    Poi dovresti spiegare cosa intendi con "cambiare la configurazione dei pin" ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3

  4. #4
    Utente di HTML.it L'avatar di 810106
    Registrato dal
    Jun 2008
    Messaggi
    67

    Ok

    Grazie per il link ma non fanno al caso mio...

    faccio un esempio per spiegare cosa vorrei fare:
    fd = open("/dev/ttyS0", O_RDWR | O_NONBLOCK);
    tcsetattr(fd, TCSANOW, <opzioni>);
    write(fd, 'a', 1);
    Il sistema scrive sulla prima porta seriale il valore di 'a' utilizzando il pin
    numero 2 per la trasmissione dei dati (o almeno mi pare sia quello
    nel caso di una porta rs232),

    Ora, se io collego alla porta seriale una periferica che accetta
    i dati tramite un'altro pin cosa devo fare?
    :master:

  5. #5

    Re: Ok

    Originariamente inviato da 810106
    Grazie per il link ma non fanno al caso mio...

    faccio un esempio per spiegare cosa vorrei fare:

    Il sistema scrive sulla prima porta seriale il valore di 'a' utilizzando il pin
    numero 2 per la trasmissione dei dati (o almeno mi pare sia quello
    nel caso di una porta rs232),

    Ora, se io collego alla porta seriale una periferica che accetta
    i dati tramite un'altro pin cosa devo fare?
    :master:
    Non accantonare quei link perchè:
    1) hai detto che non sei un programmatore (o almeno lo deduco dal titolo del thread e dal fatto che ci chiami programmatori).
    2) gestiscono la comunicazione seriale molto meglio di quanto potresti fare tu (da quello che mi hai detto).

    Poi cambiare la configurazione dei pin non significa nulla, dato che rs232 è uno standard ed ogni pin ha una sua funzione.
    Guarda qui per una completa trattazione:
    http://www.easysw.com/~mike/serial/serial.html

  6. #6
    Utente di HTML.it L'avatar di 810106
    Registrato dal
    Jun 2008
    Messaggi
    67

    :o

    Mi scuso ho fatto confusione tra i documenti in inglese che ho letto,
    Praticamente questi documenti spiegavano la connessione dei pin dal lato
    della periferica, e io ho fatto confusione con i pin lato PC. Forse è per
    questo che non ho trovato nessuna informazione...

  7. #7
    Utente di HTML.it L'avatar di 810106
    Registrato dal
    Jun 2008
    Messaggi
    67

    :o

    Mi scuso ho fatto confusione tra i documenti in inglese che ho letto,
    Praticamente questi documenti spiegavano la connessione dei pin dal lato
    della periferica, e io ho fatto confusione con i pin lato PC. Forse è per
    questo che non ho trovato nessuna informazione...

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: Ok

    Originariamente inviato da 810106
    Ora, se io collego alla porta seriale una periferica che accetta
    i dati tramite un'altro pin cosa devo fare?
    Secondo lo standard il TX e' il 2 e l' RX e' il 3 (se non ricordo male) e quindi devi solamente costruire un cavetto "incrociato" in cui il 2 sia collegato al corrispondente 3 e viceversa.

    Tutto il resto non c'entra.

    Ti consiglio di leggere la documentazione della RS232 prima di "riconfigurare" qualcosa ...

    http://it.wikipedia.org/wiki/EIA_RS-232
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Moderazione

    Io sono ancora in attesa di sapere il linguaggio di riferimento.
    C++?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  10. #10
    Utente di HTML.it L'avatar di 810106
    Registrato dal
    Jun 2008
    Messaggi
    67

    No

    Innanzitutto grazie per le risposte, e mi scuso se vi ho fatto perdere tempo con una domanda sbagliata.
    All'ultimo post rispondo che Il linguaggio di riferimento sarebbe il C su piattaforma GNU/Linux, magari usando le macro `inb' e `outb' definite in <asm/io.h>.
    Come ho già detto avevo fatto confusione però l'argomento I/O a basso livello mi intriga, anche se
    magari non lo userò mai mi piacerebbe sapere come funziona. A qualcuno va di continuare l'argomento?
    Quello che io so è ben poko, anzi diciamo pure niente!
    Ho letto il `I/O port programming Mini HOWTO', dove spiegano che per accedere direttamente
    ad una porta si utilizza il suo indirizzo. Questo (su linux) si può fare in due modi:
    1: Tramite una chiamata alla funzione di sistema `ioperm' che richiede i privilegi di root;
    2: Utilizzando lo speciale file `/dev/port'.
    Ora, mettiamo che io ho gia fatto il primo passo e ho i permessi sulla porta ( ), che istruzione
    devo usare per leggere un byte? e per scrivere un byte? e per leggere lo stato della porta?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.