Keilde port tanımlama (Exp2368-S1D13742) TFT LCD sürmek için

Başlatan computerboy, 17 Aralık 2010, 11:43:37

serdararikan

Alıntı yapılan: computerboy - 07 Ocak 2011, 14:29:56
Arkadaşlar C dilini öğrenmeye yeni yeni başladım yavaş yavaş öğreniyorum kusura bakmayın size amatörce gelebilir sorularım.

SCS|=0x01; Bu register gpio portun hızlı çalışmasını sağlıyormuş datashetten öyle anladım doğrumu anlamışım bilmiyorum:) gpio4'de kullanmak için 0x01 değeri 0x04 olmasımı gerekiyor ?

value = (value << 16);
indirect_WriteDataBus(value);

bir arkadaşım kodları bu tarzda düzenlersem olacağını söyledi acaba sadece void indirect_WriteDataBus(WORD value) fonksiyonu için düzenlesem yeterlimi yada tüm fonksiyonlar için düzenlememmi lazım

SCS|=0x01;   SCS nin ilk bitini 1 yapar.portun hızlı çalışmasını sağlamaz.
Eğer 4. bitin 1 olmasını istiyorsan   0x01 yerine 0x08 yazarsın.
veya
0b00001000 yazarsın.

computerboy

Alıntı yapılan: serdararikan - 07 Ocak 2011, 15:01:19
Alıntı yapılan: computerboy - 07 Ocak 2011, 14:29:56
Arkadaşlar C dilini öğrenmeye yeni yeni başladım yavaş yavaş öğreniyorum kusura bakmayın size amatörce gelebilir sorularım.

SCS|=0x01; Bu register gpio portun hızlı çalışmasını sağlıyormuş datashetten öyle anladım doğrumu anlamışım bilmiyorum:) gpio4'de kullanmak için 0x01 değeri 0x04 olmasımı gerekiyor ?

value = (value << 16);
indirect_WriteDataBus(value);

bir arkadaşım kodları bu tarzda düzenlersem olacağını söyledi acaba sadece void indirect_WriteDataBus(WORD value) fonksiyonu için düzenlesem yeterlimi yada tüm fonksiyonlar için düzenlememmi lazım

SCS|=0x01;   SCS nin ilk bitini 1 yapar.portun hızlı çalışmasını sağlamaz.
Eğer 4. bitin 1 olmasını istiyorsan   0x01 yerine 0x08 yazarsın.
veya
0b00001000 yazarsın.

ne amaçla kullanılır peki hocam bu. mesela SCS|=0x01; olduğunda benim setteki ledlerin hiçbiri yanmıyor ama değeri 0x02 yada değiştirince yanıyor neden olabilir.

CLR

Alıntı yapılan: computerboy - 07 Ocak 2011, 15:11:19
Alıntı yapılan: serdararikan - 07 Ocak 2011, 15:01:19
Alıntı yapılan: computerboy - 07 Ocak 2011, 14:29:56
Arkadaşlar C dilini öğrenmeye yeni yeni başladım yavaş yavaş öğreniyorum kusura bakmayın size amatörce gelebilir sorularım.

SCS|=0x01; Bu register gpio portun hızlı çalışmasını sağlıyormuş datashetten öyle anladım doğrumu anlamışım bilmiyorum:) gpio4'de kullanmak için 0x01 değeri 0x04 olmasımı gerekiyor ?

value = (value << 16);
indirect_WriteDataBus(value);

bir arkadaşım kodları bu tarzda düzenlersem olacağını söyledi acaba sadece void indirect_WriteDataBus(WORD value) fonksiyonu için düzenlesem yeterlimi yada tüm fonksiyonlar için düzenlememmi lazım

SCS|=0x01;   SCS nin ilk bitini 1 yapar.portun hızlı çalışmasını sağlamaz.
Eğer 4. bitin 1 olmasını istiyorsan   0x01 yerine 0x08 yazarsın.
veya
0b00001000 yazarsın.

ne amaçla kullanılır peki hocam bu. mesela SCS|=0x01; olduğunda benim setteki ledlerin hiçbiri yanmıyor ama değeri 0x02 yada değiştirince yanıyor neden olabilir.

Merhaba,

NXP 32bit işlemcilerde I/O portları 2 hızlı kullanılabilir ama farklı I/O registerleri kullanılır. Yani portların çalışma hızını değiştirebilirsin.

SCS|=0x1; // için fast speed I/O olur ve FIO ile başlayan registerler kullanılır
FIO0CLR, FIO2SET gibi

SCS|=0x0; // için ise low speed I/O olur ve
IOSET0,  IOCLR1 kullanılır.

Sen hangisini kullandıysan buna göre tanımla.

Sana ilerisi için ip ucu vereyim, mesela haberleşme yapacaksan(Can,uart,rs485, TFT sürceksen vs.) FastIO kullanmalısın. Ama yavaş hızlı çalışacak led, role süreceksen standart IO portları kullan.





Knowledge and Experience are Power

computerboy

teşekkür ederim şimdi oldu. o zaman aynı anda hızlı ve yavaş  kullanılmıyor benim ledlerin yanmamasının sebebi oymuş.