Stm32f4 SSD1289 LCD için Arayüz yapımı

Başlatan Kaanx, 05 Kasım 2013, 17:07:14

diot

Evet ücretli . Ama kaç kişi ücretli olarak kullanıyorki ? Burda herkes amatör yada öğrenci. Kaç kişi keil veya microc için lisans ödeyebilecek durumda. Zaten microc nin kullandığı librarylerin çoğu kendi üretimi olan kitlere ve çevre birimlere yönelik. Adı geçen firmalar için, artık öğrenme durumunda olan kişilere , kırık kullanımdan doğan haklarını  helal etsin demekten başka bir diyeceğimiz yok. Zaten ticari amaçla program yazan firmalar ücretini verip alıyorlar. Doğrusuda bu olmalı.

Mnemonic

benimde bahsettiğim açık kaynak kod felsefeside buradan geliyor zaten
farklı bir platform biliyorum ama bakın bilgisayar piyasasınana linux ile micsosoft bu konuda hala yarısıyorlar
bir yada iss var bir yada apache var bir anda dot net var bir yanda php var bir yanda ms sql var bir yanda mysql var
hepsi kullanılıyor hepside ıyı
onemlı olan para odemek istiyormusun ? yada hangi felsefeden gelıyorsun
yada hangisine alısmıssın ?
daha öğrenciyken GCC'ye alışırsan para harcamadanda iş yapmayı öğrenmiş olursun üstlelik işin birde  lisansı yeni versiyonu çıktı derdi var
ben kendi işimi yapan biri olarak ve bu işten para kazanan biri olarak açıkçacı kaçak yazılım kullanmayı sevmiyorum ve mümkün olduğunca yazılıma para ödüyorum(en azından bir yazılım aracılı ile para kazanırsam o yazılımı alıyorum) bu derdim olmması için mümkün olduğunca açık kaynak kodlu yazılımları tercih ediyorum

Firzen

Alıntı yapılan: Mnemonic - 13 Kasım 2013, 13:01:53
benimde bahsettiğim açık kaynak kod felsefeside buradan geliyor zaten
farklı bir platform biliyorum ama bakın bilgisayar piyasasınana linux ile micsosoft bu konuda hala yarısıyorlar
bir yada iss var bir yada apache var bir anda dot net var bir yanda php var bir yanda ms sql var bir yanda mysql var
hepsi kullanılıyor hepside ıyı
onemlı olan para odemek istiyormusun ? yada hangi felsefeden gelıyorsun
yada hangisine alısmıssın ?
daha öğrenciyken GCC'ye alışırsan para harcamadanda iş yapmayı öğrenmiş olursun üstlelik işin birde  lisansı yeni versiyonu çıktı derdi var
ben kendi işimi yapan biri olarak ve bu işten para kazanan biri olarak açıkçacı kaçak yazılım kullanmayı sevmiyorum ve mümkün olduğunca yazılıma para ödüyorum(en azından bir yazılım aracılı ile para kazanırsam o yazılımı alıyorum) bu derdim olmması için mümkün olduğunca açık kaynak kodlu yazılımları tercih ediyorum

Bu dediğiniz konusuna bende kesinlikle katılıyorum haklısınız sonuna kadar bende elimden gelidğimce lisanslı almaya çalışıyorum. COCOX daha öncelerde kullanmamıştım denemek lazım diyorum sadece ve tam anlamıyla açık kaynak kod mu ticari amaçlı kullanılabilir mi orasına da bakmak lazım tabi
Kararsız...

Mnemonic

Merhaba
Coocox yani COIDE sadece bir editördür siz bunun yerine eclipse yada başka birşeyde kullanabilirsiniz. Burada asıl derleyici GCC'dir ve GCC zaten açık kaynak kodun başlangıcını oluşturan felsefesinin başladığı noktadır ve GNU lisansıyla lisansıyla lisanslanır. dolayı ile gönül rahatlı ile kullanabililirsiniz

Firzen

Alıntı yapılan: Mnemonic - 14 Kasım 2013, 08:19:31
Merhaba
Coocox yani COIDE sadece bir editördür siz bunun yerine eclipse yada başka birşeyde kullanabilirsiniz. Burada asıl derleyici GCC'dir ve GCC zaten açık kaynak kodun başlangıcını oluşturan felsefesinin başladığı noktadır ve GNU lisansıyla lisansıyla lisanslanır. dolayı ile gönül rahatlı ile kullanabililirsiniz
Açıklama için teşekkür ederim. Dediğiniz gibi deneme yapmaya başlayacağım ama benim asıl problemim driver yazmakta nasıl yazılır bilmiyorum bence asıl bu öğretilmeli madem tartışma konumuz hazır kodlar o zaman nasıl driver yazılır bunu araştıralım paylaşalım bilenler öğretsin.
Kararsız...

Kaanx

Hocam affınıza sıgınıyorum belki alakasız olucak bu sorum ama driver yazmak için parallelisim ögrenmemiz gerekmiyor mu en başta bizim. Basit bir MCU ile paralel programlama çalışmalarına başlamak ve onun için driverlar yazmak bizim için başlangıc olabilir mi ?

Firzen

Paralel programlama çok farklı bir konu diye biliyorum.
http://en.wikipedia.org/wiki/Parallel_computing

Paralel programlamada işlemciden çok ekran kartını kullanırsın aynı bir karınca sürüsü gibi olan ekran kartı işlemcileri ile programlama yapmak yüksek hız ve yüksek çözünürlük verir bu yüzden genelde yüksek lisans da veriliyor bizim ülkemizde doktorada.
http://www.nvidia.com/object/cuda_home_new.html

Driver yazmak ise ap ayrı bir olay C# da DLL dosyası oluşturmak gibi bizde yeni aldğımız bir eklenti(HCSR04,SHARP SENSOR, TFT LCD MODUL) için driver yazmak için katalog okuyp ona göre kod yazıyor H ve C dosyaları.

İşte benim bilmediğim kısım bu hangi malzeme için nasıl driver yazılıyor nasıl yapılıyor???
Kararsız...

olemiss

Alıntı yapılan: Kaanx - 23 Kasım 2013, 21:39:44
driver yazmak için parallelisim ögrenmemiz gerekmiyor mu en başta bizim.

Driver geliştirmek ile paralel programlama arasında bir bağ bulunmuyor.  Zaten driver yazımı genelde (en azından Windows dünyasında) işletim sistemi desteğinin minimum olduğu kernel ortamında yapılır.  Bu ortamda bırakın paralel programlama desteğini, bildiğiniz printf() bile zar-zor çalışır.

Driver geliştirmek için gerekli olan en önemli şey bence debugging becerisidir.  Hatta remote debugging; bir sistemde debugger çalışırken seri ya da JTAG ile bağlı olan diğer sistemde driver kodu içinde neler olup bittiğinin anlaşılmasıdır.
Yazılım Mühendisi, Çevirmen.

Mnemonic

Arkadaşlar
driver yazma olayını fazla gözünüzde abartmayın. Driver diye gözünüzü korkutuyorsunuz ve işe başlayamıyorsunuz. Sadece biraz angaryası var o kadar.
kısaca şöyle özetleyelim. Mesela XPT2046 touch panel için driver yazacaksınız dimi. öncelikli olarak yapmanız gereken şey bu chipin datasheetini alıp okumak ve nasıl çalıştığını ne istediğini ne verirseniz onun size ne verdiğini öğrenmek akabinde bunu yapan fonsiyonu yazmak ve bu fonsiyon sizin driveriniz olur
aynışey diğer ürünler içinde geçerli SSD1289 yada1963 yada bambaşka işlem yapan bir chip yada ürün siz ona bir değer gönderirsiniz oda size sonra aldığınız değeri işlersiniz
bunların hepsi datasheetde yazar. gene xpt2046dan örnek vereyim datasheetin 22. sayfasını açarsanız orada bir talo göreceksiniz o tabloya göre uygun SPI verisini gönderirseniz oda size bir SPI  verisi gönderecektir daha sonra bu veriyi ayıklarsanız istediğiniz X veya Y kordinat değerini istediğiniz değişkene yazan fonsiyonu yazabilirsiniz.
bu işlerle uğraşmak içn öncelikli olarak yapmanız gereken şey datasheet anlayacak kadar INGILIZCE bilmek ve matematik algotirmalarını anlayacak kadar matematik kafası olmasıdır(nasıl işlediğini ve akışını bilin yeter manyak gibi matematik bilmenize gerek yok) .

Firzen

Alıntı yapılan: Mnemonic - 24 Kasım 2013, 12:47:37
Arkadaşlar
driver yazma olayını fazla gözünüzde abartmayın. Driver diye gözünüzü korkutuyorsunuz ve işe başlayamıyorsunuz. Sadece biraz angaryası var o kadar.
kısaca şöyle özetleyelim. Mesela XPT2046 touch panel için driver yazacaksınız dimi. öncelikli olarak yapmanız gereken şey bu chipin datasheetini alıp okumak ve nasıl çalıştığını ne istediğini ne verirseniz onun size ne verdiğini öğrenmek akabinde bunu yapan fonsiyonu yazmak ve bu fonsiyon sizin driveriniz olur
aynışey diğer ürünler içinde geçerli SSD1289 yada1963 yada bambaşka işlem yapan bir chip yada ürün siz ona bir değer gönderirsiniz oda size sonra aldığınız değeri işlersiniz
bunların hepsi datasheetde yazar. gene xpt2046dan örnek vereyim datasheetin 22. sayfasını açarsanız orada bir talo göreceksiniz o tabloya göre uygun SPI verisini gönderirseniz oda size bir SPI  verisi gönderecektir daha sonra bu veriyi ayıklarsanız istediğiniz X veya Y kordinat değerini istediğiniz değişkene yazan fonsiyonu yazabilirsiniz.
bu işlerle uğraşmak içn öncelikli olarak yapmanız gereken şey datasheet anlayacak kadar INGILIZCE bilmek ve matematik algotirmalarını anlayacak kadar matematik kafası olmasıdır(nasıl işlediğini ve akışını bilin yeter manyak gibi matematik bilmenize gerek yok) .

Hocam benim aynen bahsettiğim bu.
bir tane örnek olsa nasıl yapıldığı ile ilgili çok güzel olur.
Kararsız...

olemiss

#40
Haklısınız, ben "driver" derken Windows dünyasındaki anlamına göre cevap vermiştim. 

Örnek olarak yine SSD1289 çipini kullanalım; aşağıda bu çiple SPI bağlantısı yapan fonksiyonlar bulunuyor:
void SPI_Init(void)
{
  SPI_SS = 1;
  SPI1BR = 0x05;   		
  SPI1C2 = 0x00;     
  SPI1C1 = SPI1C1_SPE_MASK | SPI1C1_MSTR_MASK;
}

void SPI_Send_byte(UINT8 u8Data)
{
	(void)SPI1S;
	SPI1D=u8Data;
	while(!SPI1S_SPTEF)
	    {};
}

UINT8 SPI_Receive_byte(void)
{
	(void)SPI1D;
	SPI1D=0xFF;
	while(!SPI1S_SPRF)
	    {};
	return(SPI1D);
}

void SPI_High_rate(void) // for SDCARD 
{
  SPI1C1 = 0x00;
  SPI1BR = 0x10; //  0x10; 		
  SPI1C1 = SPI1C1_SPE_MASK | SPI1C1_MSTR_MASK;
}


Yukardakiler, alt seviye fonksiyonlar.  Bu fonksiyonları kullanarak,  ve Mnemonic'in dediği gibi datasheet'i okuyarak/anlayarak, çipe hükmetmek mümkün.

Yukardaki kaynak kod şuradan: http://sourceforge.net/projects/lcdtfthx8347a/files/code_release_src/
SSD1289 datasheet şurada: http://www.robotshop.com/media/files/pdf/datasheet-shd032.pdf
Yazılım Mühendisi, Çevirmen.