C de portlara ulaşmak ama nasıl?

Başlatan Ankaralı, 21 Haziran 2009, 22:24:57

Ankaralı

Herkese hayırlı akşamlar.

Bu sıralar C ye merak sardım bayada ilerlettim.Yalnız şimdi sıkıcı uygulamalardan bıktım.Bunu daha da ileriye taşımanın bir yolu olmalı diyerek bilgisayar ve elektroniği birleştirmeye karar verdim.

Benim istediğim paralel porttan röle, led,hatta yapabilirsem pici haberleştirmek istiyorum.Google amcadan fazla faydalanamadım.Sizlerden bu konuda yardım istiyorum.

Mesela c de gecikme fonksiyonu varmı?1 sn sonra ledi kendisi söndürebilirmi?

Şimdiden teşekkür ederim.

Not=Kullandığım derleyici Dev C ve Visual Studio...
@ NEXYS2

Tagli

C'de port kontrolü nasıl yapılıyor bilmiyorum ama zamanında biraz araştırmıştım internette. Çok kolay değildi yanlış hatırlamıyorsam ama internette örneği çok.

Gecikmeye gelince, okulda aldığımız bir ders kapsamında Linux ortamında pthreads isimli thread kütüphanesini kullanarak bekleme yapmıştık. Windows'ta hangi thread kütüphaneleri kullanılıyor onu bilmiyorum.
Gökçe Tağlıoğlu

kadirbas

Selamlar QarizmaCocuq.

Paralel port'la ilgili yapılmış bir çok program bulabileceğini düşünüyorum. Ben daha önce internette rastlamıştım fakat hiç denemedim.. O konuda internette tekrar arama yaparsan birşeyler bulabilirsin diye düşünüyorum.

Thread kavramının ne olduğunu biliyor musun bilmiyorum, fakat eğer bilmiyorsan bu konuyu da araştırmanı tavsiye ederim. Örnek bir thread kodu:

#include <stdio.h>
#include <windows.h>


DWORD __stdcall ThreadProc(void *param);

int main()
{

	HANDLE hThread;
	DWORD dwThreadID;

	hThread = CreateThread(NULL, 0, ThreadProc, NULL, 0, &dwThreadID);
	if(hThread == NULL)
	{
		fprintf(stderr, "Cannot create thread!..\n");
		exit(EXIT_FAILURE);
	}

		
	ExitThread(0);
	
	return 0;
}

DWORD __stdcall ThreadProc(void *param)
{
	int i;
	
	for(i = 0; i < 10; ++i)
	{
		printf("Other thread : %d\n", i);
		Sleep(1000);
	}
	
	return 0;
}


Bu kodu thread çalışmasını nasıl gerçekleştirebileceğine örnek olsun diye verdim. Bu kod üzerinde değişiklikler yaparak istediğin çalışmayı gerçekleştirebilirsin diye düşünüyorum..


Kolay gelsin...

Ankaralı

Evet nette bişeyler buldum ama alayı almanca ve ingilizce 2 dilide bilmem anlamadanda copy-paste yapmak mantıksız  :lol: .Türkçe kaynaklardada C# dan örnekler var.

@Kadirbas

Üstadım gönderdiğin şeyi biraz açıklarmısın burada yaptığımız şey c de zaman gecikmesimi?

Thread demişsin araştırma yaptım işlemleri paralel olarak gerçekleştirmeden bahsediliyor.Konumuzla bunun ne türden bir alakası var.Beni aydınlatırsan mutlu olucam.

@Tagli üstadım seninde yorumların için teşekkürler.
@ NEXYS2

kadirbas

Alıntı yapılan: "QarizmaCocuq"Üstadım gönderdiğin şeyi biraz açıklarmısın burada yaptığımız şey c de zaman gecikmesimi?

"C'de zaman gecikmesi" demek belki çok doğru olmayabilir fakat; bu programla ikinci thread bir döngü içerisinde her defasında yaklaşık olarak 1 saniye bekleyip, "printf" fonksiyonunu çağırıyor.

Bildiğiniz gibi Windows "multi-processing" yapan işletim sistemlerindendir. Zaman paylaşımlı olarak birden fazla işlemi işletir. "Process"ler birden fazla akış içerebilirler. Bu akışların her birine "thread" denir.

Alıntı yapılan: "QarizmaCocuq"Thread demişsin araştırma yaptım işlemleri paralel olarak gerçekleştirmeden bahsediliyor.Konumuzla bunun ne türden bir alakası var.Beni aydınlatırsan mutlu olucam.

Esasında aklıma "thread" gelmesinin sebebi sizin ilk sorunuzdan kaynaklanıyor.

Alıntı yapılan: "QarizmaCocuq"Mesela c de gecikme fonksiyonu varmı?1 sn sonra ledi kendisi söndürebilirmi?

Burada "1 saniye sonra LED'i kendisi söndürebilir mi?" sorunuzdan, siz başka işlemleri işletirken, işletim sisteminin belirli bir süre sonra başka bir akıştan LED söndürme işini yapmasını istediğinizi düşündüm. Bu yüzden de, "thread"li bir çalışmanın nasıl yapılabileceğini merak ettiğiniz fikrine kapıldım...

Ankaralı

Hiç bilmediğim bişeyi öğrenmeye çalışırken farklı bir konuyuda öğrenmiş oldum eyvallah üstad.Şimdi sırada portlara nasıl ulaşıcağım var.Bu C de input output(komutlar) çalışırmı?Denedim olmuyor farklı bişey mi denemem gerek.
@ NEXYS2

fahri-


kadirbas

Selam QarizmaCocuq.

Msn üzerinden sana gönderdiğim bağlantıyı farkettin mi bilmiyorum.
Aynı bağlantıyı buradan da göndermek istedim. Böylelikle bu başlığı inceleyen diğer kişilere de yararı olur..

lhttp://logix4u.net/Legacy_Ports/Parallel_Port/A_tutorial_on_Parallel_port_Interfacing.html

Daha önce sana söylediğim gibi, elimdeki bilgisayarda paralel port olmadığından buradaki kodları deneme fırsatım olmadı fakat denemekte yarar var...

Tekrar kolay gelsin...

OptimusPrime

http://www.internals.com/
adresindeki winio kütüphanesiyle çalıştım. gayet güzel işliyor. tavsiye derim.
https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

BenC

Google dan Serial Communications in Win32 diye arat. Orda MTTTY olacak. C kaynak kodlu bir uygulama var. Eski Win 3.1 zamanından kalma bir Seri Port iletişim kodu.

Link bu:http://msdn.microsoft.com/en-us/library/ms810467.aspx

ordaki  4918.exe dosyasını bilgisayarına kur. C:\msdn\sample\.... altına kaynak dosyaları atacaktır.

Bir ara VC 6.0 a göre uyarlamıştım ama bulamadım.
ŞEHİT KANIYLA ALINMIŞ BU GÜZELİM VATANIN TOPRAKLARI KARIŞ KARIŞ SATILIYOR!!  VATAN HAİNİ OLMA!!