Obsluga RS'a w BorlandC++
Masz problem? Zapytaj na forum elektroda.pl
From: "Andrzej Fien" <fien_at_nospam_hbury.com>
Subject: Obsluga RS'a w BorlandC++
Date: Tue, 21 Dec 1999 09:22:02 GMT
Witam.
Mam pytanie: czy ktos robil obsluge portu szeregowego pod dos'a.
Chodzi mi o pakiet BorlandC 3.1.
Jesli tak to prosze o info.
Mam napisane procedurki w asemblerze z przechwytywaniem przerwan od rs'a.
Jednak nie zawsze mi dzialaja. Cos jest nie tak.
Moze windows sie wtrynia i mi miesza. Nie wiem :(
Pozdrawiam
AF
mailto: fien_at_nospam_hbury.com
From: Jerzy Lelusz <jlelusz_at_nospam_csk.pl>
Subject: Re: Obsluga RS'a w BorlandC++
Date: Tue, 21 Dec 1999 12:46:40 +0100
Andrzej Fien wrote:
Witam.
Mam pytanie: czy ktos robil obsluge portu szeregowego pod dos'a.
Chodzi mi o pakiet BorlandC 3.1.
Jesli tak to prosze o info.
Mam napisane procedurki w asemblerze z przechwytywaniem przerwan od rs'a.
Jednak nie zawsze mi dzialaja. Cos jest nie tak.
Moze windows sie wtrynia i mi miesza. Nie wiem :(
Ja mam takie cos co dziala w BP7 i BC3.0 - w BC3.1 tez powinno bo sie
niczym nie roznia.
Chcesz to Ci wysle - a Ty jak mozesz to podeslij mi te swoje procedurki
na priva - moze to cos
ciekawego?
Jurek
--
----------------------------------
mailto:jlelusz_at_nospam_csk.pl ICQ:35378815
From: Grzegorz Domagala <domag_at_nospam_linux.uci.agh.edu.pl>
Subject: Re: Obsluga RS'a w BorlandC++
Date: Tue, 21 Dec 1999 19:28:56 +0100
Andrzej Fien wrote:
Witam.
Mam pytanie: czy ktos robil obsluge portu szeregowego pod dos'a.
Chodzi mi o pakiet BorlandC 3.1.
Jesli tak to prosze o info.
Mam napisane procedurki w asemblerze z przechwytywaniem przerwan od rs'a.
Jednak nie zawsze mi dzialaja. Cos jest nie tak.
Moze windows sie wtrynia i mi miesza. Nie wiem :(
Pozdrawiam
AF
mailto: fien_at_nospam_hbury.com
Pisalem niedawno cos takiego (fragment ponizej) nie jest to wprawdziwe
na przerywaniach ale moze sie przyda. Jesli sam do tego nie doszedles to
mala rada - w zadnym wypadku nie uzywaj funkcji proponowanej przez BC
!!! (nie pamietam jej nazwy) nie dziala a bezowocne proby jej
uruchomienia (wg helpa ) moga skonczyc sie napadem szalu. Funkcja ta
uzywa procedur biosowych, ktore nie dzialaja. Najlepsza metoda jest
bezposrednie pisanie do portow I/O (dla programow dosowych). Moj
"wytwor" powstal na podstawie czyjegos programu w Paskalu i opisu w
Norton Guide
GRG
#include <stdio.h>
#include <graphics.h>
#include <bios.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include <dos.h>
#include <string.h>
// definicje staluch dla portow com
#define DTR 0x01 // Data Terminal Ready
#define RTS 0x02 // Ready To Send
#define COM1PORT 0x0000 // Pointer to Location of COM1 port
#define COM2PORT 0x0002 // Pointer to Location of COM2 port
#define COM1 0
#define COM2 1
#define DATA_READY 0x100
#define FALSE 0
#define TRUE !FALSE
#define PARITY 0x0400
#define OVERRUN 0x0200
#define FRAMING 0x0800
#define TIME_OUT 0x8000
#define BREAK 0x1000
#define COMERROR 0x1E00
#define SETTINGS ( 0xA0 | 0x00 | 0x08 | 0x03) // 2400,parity,8 bit
#define PORT_COM COM2 // aktywny port
// pobranie pakietu z portu - jesli odbierze poprawny pakiet zwraca jego
// odkodowana zawartosc tablicy (argument) oraz wartosc 0
// w innym wypadku zwraca kod bladu
int odczyt(char muska[ALLS])
{
struct tm *c;
int status;
time_t t1;
int buffi[14]={0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int lzn,ecode;
status=bioscom(3,0,PORT_COM);
lzn=1;
ecode=status;
if(status&DATA_READY)
{
buffi[0]=bioscom(2,0,PORT_COM);
t1=(time(NULL))+2;
while((lzn<14)&&(t1>time(NULL)))
{
ecode=ecode|(status=bioscom(3,0,PORT_COM));
if(status&DATA_READY)
{
buffi[lzn]=bioscom(2,0,PORT_COM);
lzn++;
}
}
}
if(lzn<14)
{
for(lzn=0;lzn<14;lzn++)
{
ecode=ecode|(buffi[lzn]&0Xff00);
}
return ecode;
}
for(lzn=0;lzn<ALLS;lzn++)
{
muska[lzn]=0;
}
// ---------------------- analiza pakietu
t1=t1-2;
c=localtime(&t1);
return 1;
}
From: "Andrzej Fien" <fien_at_nospam_hbury.com>
Subject: Odp: Obsluga RS'a w BorlandC++
Date: Wed, 22 Dec 1999 13:48:57 GMT
Dzieki za pomoc. Juz znalazlem buga.
A myslalem juz to rzucic. Podsylam procedurki na priva.
Pozdrawiam wszystkich i lacze zyczenia swiateczne
AF
mailto: fien_at_nospam_hbury.com
From: "Andrzej Fien" <fien_at_nospam_hbury.com>
Subject: Odp: Obsluga RS'a w BorlandC++
Date: Wed, 22 Dec 1999 13:49:00 GMT
Dzialaja tylko musisz miec zapetlenia na kabelku CTS i RTS (chyba 4 z 6 i 7
z 8).
AF
mailto: fien_at_nospam_hbury.com