OT! C&DOS&COM port

Pavel Houdek p.houdek na seznam.cz
Čtvrtek Duben 26 16:45:11 CEST 2001


Dobry den...
  Omlouvam se za OT, ale bohuzel jsem ani v archivech(nejen na 
linux.cz) nenalezl pouzitelny odkaz na cz konferenci (resp. archiv) 
zabyvajici se...     
  Mam tady nekolik pristroju pripojitelnych ke COM portu... 
Problem je ten ze PC do ktereho mam data dostavat je 386 s 
DOSem...
  Pro obsluhu onoho COM portu jsem zkousel neco napsat ve 
fortranu, pascalu i v C... Jedine co spolehlive precte data je 
programek v BASICu ostatni bud "nenajde" port nebo vypisuje 0 
popr, nejake jine znaky "44" "D" apod...   
 Chtel bych timto oslovit nektere C-guru zda-li by mi nekdo nemohl 
poradit jak na to... popripade opravit moje "reseni".. 

Pripadne mi vynadejte na mail at s tim neotravujeme konferu
Dekuji:-)
Pavel Houdek
p.houdek na seznam.cz  
 

Onen BASICovsky fungujici programek:

OPEN "COM2:9600,N,7,2,RS,CS,DS,CD" FOR RANDOM AS #2
FOR I = 1 TO 10
PRINT #2, "D"
IN$ = INPUT$(4 * 14, #2)
PRINT IN$
NEXT
CLOSE #2
END

Moje "reseni" v C (dle helpu), co mi tady  chybi 1)je inicializace 
portu a 2)specifikace datoveho formatu vystupu(14bytu) tohle je 
pokus vubec neco z portu precist.....:

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

int main(void)
{
   unsigned char result;
   int port = 1;            /* serial port 2  (puvodne byla 0 pro serial 1)*/
   int value = 68;         /* 'D' */

  do {
      outportb(port, value);
      result = inportb(port);
      printf("Byte read from port %d = %c\n", port, result);
      } while(!kbhit()) ;
  return 0 ;
}


Další informace o konferenci Linux