[ Shimmy @ 01.11.2001. 21:34 ] @
Radim pod Win-om 2000 u Visual C++ i pokusavam da napravim rutinu koja ce da salje odredjeni podatak na paralelni port .... taj podatak treba da bude samo jedan bit koji ce se pojaviti na odredjenom pinu (ustvari to je bajt koji ce aktivirati odredjeni pin). Ovo sam bio odradio pod win98 sa outp() funkcijom i sve je radilo ok, ali ne znam kako da to izvedem u windowsu 2000 .... Pa ima li neko ko zna o cemu pricam i moze li mi pomoci ? :)
[ Ivan Dimkovic @ 02.11.2001. 05:36 ] @
Pogledaj f-je CreateFile() i DeviceIoControl()

>A process uses the CreateFile function to open a handle to a
>communications resource. For example, specifying COM1 opens a handle
>to a serial port, and LPT1 opens a handle to a parallel port. If the
>specified

[ Shimmy @ 03.11.2001. 21:51 ] @
Ok, ovo izgleda da radi, samo sto ja ne znam kako
preko char* promenljive da aktiviram neki pin.
npr. kad saljem iz wina98 ..

unsigned short byte = 128; // sto je 10000000
outp(0x378,byte);

on mi salje na prvi pin signal od 5V, a kad uradim
outp(0x378,byte & 127) ... onda on samo salje 0V
signal na taj pin a svi ostali pinovi ostaju ne promenjeni.

Kako da to izvedem preko char* promenljive ???

Hvala.
[ Ivan Dimkovic @ 04.11.2001. 06:08 ] @
Ne mogu ti konkretno pomoci posto nemam voltmetar i nisam bas strucan u takvoj vrsti programiranja, ali ti mogu dati par generalnih saveta koji mogu da upale:

1. Probaj da umesto char koristis ULONG (unsigned long) / DWORD
(moguce je da f-ja salje DWORD a neki gornji bitovi mogu biti setovani)

2. U Win98 startuj obe verzije programa, onu sa outp() i onu sa FILE I/O i sa nekim debuggerom vidi sta se zapravo salje paralelnom portu.

3. Pri slanju stringa, postoji velika mogucnost da se salje i \0 (terminate) pa mozda i to remeti stvari - postaraj se da string koji saljes nije null-terminated.