o cod lar eski sistemlerde çalışıyor. malesef xp de sorun yaratır onun için en temiz çzüm win32 tabanlı serial port kullanımıdır... #include <windows. h> #include <iostream> #include <stdio. h> #include <fcntl. h> static HANDLE hSerial; static DCB dcbSerialParams = ; static COMMTIMEOUTS timeouts = ; HANDLE hThread; DWORD dwThreadID; int serialport ; DWORD WINAPI ThreadProc ; DWORD cBytes_out; BYTE s; char ch; int main int serialport { char szBuff = ; DWORD dwBytesRead = 0; hSerial = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if { if(GetLastError ERROR_FILE_NOT_FOUND) } printf("com1\n"); // dcbSerialParams. DCBlength = sizeof ; if(! GetCommState dcbSerialParams. BaudRate = CBR_9600; dcbSerialParams. ByteSize = 8; dcbSerialParams. StopBits = ONESTOPBIT; dcbSerialParams. Parity = NOPARITY; printf("BauD RaTe : 9600\n"); printf("8N1\n\n\n"); if(! GetCommState MessageBox(NULL,"Serial Port OK\n9600 BauD RaTe\n8N1","ByCodeC SmarT TerminaL\n\n", MB_OK); timeouts. ReadIntervalTimeout = 50; timeouts. ReadTotalTimeoutConstant = 50; timeouts. ReadTotalTimeoutMultiplier = 10; timeouts. WriteTotalTimeoutConstant = 50; timeouts. WriteTotalTimeoutMultiplier= 10; if(! SetCommTimeouts EscapeCommFunction ; // ReadFile(hSerial,&s,1,&dwBytesRead, NULL) ch = 0x00; WriteFile(hSerial,&ch,1, &cBytes_out, NULL);Sleep(500); //data yazma ReadFile(hSerial,&s,1,&dwBytesRead, NULL);printf ;//data okuma CloseHandle ; return 0; } //} Game Developer

sagol hocam, basicte cok daha kolay.. kod soyle:OUT <Portun adresi>, <Gonderilecek veri>orn: OUT &h378, 25baska sorular olursa aksama cvplamaya calşısırım bildigim kadarıyla hocalar.. şimdi yemek yapmam lazım :D

uğraşın için saoll... visul basicde de olsa bi de işte geldik gidiyoruz bilinmez diyara, Eskiden karpuz idik şimdi dndük bir hıyaraaaaa

Mrb hocalar, gecenlerde c kullanaraktan port kontrolunu soran arkadaslar vardı. bi kitapta konuyla ilgili kaynak koda rastladım. fazla uzun bişe degil: muritlerin işine yarar belki die yaziim dedim. d0 d1 d2 ve d3 pinlerini kontrol edebiliosunuz. program "enter data" dedikten sora ondalık şekilde sayıyı girin o kadar :) bide "DATA" ya aktarılan deger paralel portunuzun base adresi.. onun da kendi bilgisayarınızla uyustugundan emin olun :) zaten cogu pc de 0378 dir ama belki sizin ki degişik fln olabilir. port adresime nası bakılır : winxp/2000 vs için bilgisayarıma sag tıklayıp ozellikler diin, donanıma gelip aygıt yoneticisini secin, baglantı noktalarına tıklayın, sora asagıda yazıcı baglkantı noktasına çift tıklayın. sekmelerden kaynakları secin. orda yazan ilk adres base adres... ahanda kodlar:#include <stdio. h>#include <string. h>#include <sys/io. h>/ kütüphaneler tanımlandı /#define DATA 0x378#define STATUS DATA+1#define CONTROL DATA+2/ burda port adreslerini tanımladık /int main {int test;int again=1;int datatoport;int datafromport;printf ;/ ana fonksiyonlar, degiskenler vs /while {printf ;printf("(orn.255): ");scanf ;test=ioperm(DATA, 3. 1);/ port, num, turn on /if elseprintf ;outb(0000, DATAioperm(DATA, 3, 0);exit (0);}