X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f Message-ID: <00a301c4a9e0$754ee650$0d01a8c0@josepmariaxp> From: "JM Rams" To: References: Subject: Re: how can i use importb && outportb to control the series port com 1 ? Date: Mon, 4 Oct 2004 09:04:49 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2741.2600 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2742.200 X-MailScanner-Information: Please contact the ISP for more information X-MailScanner: Found to be clean Reply-To: djgpp AT delorie DOT com ----- Original Message ----- From: "MUSH ROOMS" To: Sent: Saturday, October 02, 2004 1:51 PM Subject: how can i use importb && outportb to control the series port com 1 ? > i woul like to get and to send information by the port com 1, how can i do ? > > _________________________________________________________________ > MSN Search, le moteur de recherche qui pense comme vous ! > http://search.msn.fr > > I use this two functions to initializing and to send a caracter by COM ports. It works fine. void inicialitza_port_serie(int com,float bauds,unsigned char bits,unsigned char paritat,float stp) { long divisor; unsigned char line_control=0; unsigned char stop=0; if(stp==1)stop=0; if(stp==1.5)stop=0x4; if(stp==2)stop=0x4; line_control=(bits-5)|stop|((paritat/2)<<4)|(((paritat+1)/2)<<3); divisor=(long)(max_baud/(long)bauds); outportb(com+0x03,0x80|line_control); /* Line Control Reg. parritat(0x8), 0x0 1bit paro, 0x3 8 bits*/ outportb(com+0x02,0xC7); /* Activa FIFO i netejo */ outportb(com+0x00,(divisor&0xFF)); /* Baudrate div. LSB */ outportb(com+0x01,(divisor<<8)); /* Baudrate div. MSB */ outportb(com+0x03,line_control); /* Line Control Reg. 0x0f*/ outportb(com+0x01,0x00); /* Interrupt Enable */ outportb(com+0x04,0x0); /* Modem Control Reg. abans 0x3*/ outportb(com+0x06,0xFF); /* Modem Status Reg.*/ inportb(com); } int e_caracter(int port,char c) { int error=0; if(inportb(port+0x5)&0x1e)error=10; else if((inport(port+0x5)&0x40)!=0)outportb(port,c); else return(1); return(error); }