← Back to team overview

sslug-teknik team mailing list archive

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