RS-232 w języku ANSI C

0

Witam!!

Mam olbrzymią prośbę. Muszę obsłużyć następujący przypadek NA COM 1 przychodzi transmija program ją przerzuca na COM 2 . Musi to być czyste C. Program "w zasadzie działa" wysyła jednak za dużo znaków.

#include <dos.h>
#include <io.h>
#include <stdio.h>
#include <conio.h>

#define TIME_OUT 1000000
static int base0=0x3f8; /* Port 1 base address (COM1) /
static int base1=0x2f8; /
Port 2 base address (COM2) */
static char znak;

void main()
{
int i;
int timeout;
char flag;

/* Set up Port 1 (COM1)	*/
outport((base0+2),0x01);
outp((base0+3),0x80);
outp(base0  ,0x0C);
outp((base0+1),0x0);	       
outp((base0+3),0x03);
outp((base0+1),0x00);


/* Set up Port 2 (COM2)	*/
outport((base1+2),0x01);
outp((base1+3),0x80);
outp(base1  ,0x0C);
outp((base1+1),0x0);      
outp((base1+3),0x03);
outp((base1+1),0x00);

while (1)
{
	znak = NULL;
	znak = inportb(base0);
	if (znak!=NULL)
	{
		outportb(base1,znak);
	}
}

}

Bardzo proszę o pomoc

0

w ansi-c tego <ort>nie</ort> zrobisz...

0

Mam do dyspozycji kompilator Borlanda 6.0 dlaczego miałobybyć to niemożliwe???

0

w ansi-c nie ma zadnej funkcji od portow, inb outb takze nie sa standardowe, a co do borlanda to mozesz w miare prosty sposob wykorzystac funkcje winapi do obslugi portu com...

1 użytkowników online, w tym zalogowanych: 0, gości: 1