sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #92783
Re: Kontrolle pins på seriel porten
On Wed, Aug 15, 2007 at 16:37:39 +0200, Christoffer Holm Kjølbæk wrote:
> Hejsa,
>
> Jeg har lavet en meget simpel blæser styring, hvor jeg bruger TxD, DTR
> og RTS til at tænde tre blæsere, via en transistor.
>
> Det virker ganske fint [1], dog kan jeg ikke lige få bikset et program
> sammen der kan sætte disse pins uafhængigt af hinanden.
>
> Jeg har kigget lidt på pport, men kan ikke få det til at spille. Er der
> nogen der kender en god løsning til dette?
Jeg har tidligere lavet IO styring via serielport og gameport i C og C++,
så det kan lade sig gøre.
Man bruger nogle af ioctl(), termios(), cfmakeraw(), tcsetattr/tgetattr()
til dette.
Der findes en Serial Port Programming Howto om emnet.
http://tldp.org/HOWTO/Serial-Programming-HOWTO/index.html
http://mirrors.dotsrc.org/ldp/HOWTO/text/Serial-Programming-HOWTO
http://www.easysw.com/~mike/serial/ :: god beskrivelse af systemkald
http://www.lafn.org/~dave/linux/Serial-Programming-HOWTO.txt (ældre version)
man cfmakeraw
man tcsetattr
man tcgetattr
man ioctl
man ......osv
Med cfmakeraw(), og termios datastrukturer sætter man ønskede
bits serielport (RTS, ...)
og med tcsetattr() sætter man porten udfra termios data.
med tcgetattr() kan man læse opsætning mv,
og med ioctl() kan man læse/skrive bla. RTS
eksempel
http://www.windmeadow.com/node/4
se relay.c der er på siden
--
mvh Frank Damgaard |
Follow ups
References