mini 2440"da LED yakıp söndürme

Başlatan doctor21, 09 Mayıs 2011, 21:46:05

doctor21

arkadaşlar merhaba,,,mini2440 üzerindeki GPIO portlarının pinlerini kullanarak boordun yanına bağlayacağım ledi (yani harici olarak) yakıp söndürmeyi nasıl yapabilirim,,,mini2440'ın yani arm9 tabanlı işlemcimin içindeki ledleri yakıp söndürebiliyorum onun kodları elimde olduğu için ama harici olarak bağlayacağım bir ledi nasıl yakıp söndüreceğimi bilmiyorum bu konuda bilgi sahibi olan arkadaşlar varsa çok acil dönüş yapabilirlerse çok sevinnirim ,,,eğer ledi yakıp söndüreblilirsem mini2440 ile dc motor kontrolü yapabileceğim umarım bu konu hakkında bilgi sahibi olan arkadaşlar vardır:)))))   

EMG81

Hangisi daha doğru bilmiyorum ama;

Zaten anladığım kadarıyla Dc motoru sürmek için ufak bir kart yaptıracaksınız. Bu kartı şöyle yapsanız .
Minik bir Rs232 çevirici ve küçük te bir MCU ile Com bağlantısı oluştursanız. Sonra bunlarıda DC motor sürücünüze verseniz. Board ile direk Rs232 den çalışsanız daha iyi olmazmı ?

doctor21

EMG81
peki GPIO portlarının pinlerini kullanarak bir ledi nasıl yakıp söndürebilirm elinde bununla ilgili kod varmı,,,şu anki temel problemim bu ,,kodla ilgili problem yaşıyorum varsa gönderebilirsen hemen  çok mutlu olurum :)))

EMG81

#3
.

MC_Skywalker

Keil microvision içindeki blinky örneği size yardımcı olacaktır. sadece header dosyasını kullanacağınız mcu için değiştreceksiniz. arm 9 General Purpose IOları  arm7 den çok farklı değildir.  yine (F)IOSET (F)IODIR  registerleri ile ayarlanır.


#include <LPC21xx.H>                       /* LPC21xx definitions */

void wait (void)  {                        /* wait function */
  int  d;

  for (d = 0; d < 1000000; d++);           /* only to delay for LED flashes */
}

int main (void) {
  unsigned int i;                          /* LED var */

  IODIR1 = 0x00FF0000;                     /* P1.16..23 defined as Outputs */

  while (1)  {                             /* Loop forever */
    for (i = 1<<16; i < 1<<23; i <<= 1) {  /* Blink LED 0,1,2,3,4,5,6 */
      IOSET1 = i;                          /* Turn on LED */
      wait ();                             /* call wait function */
      IOCLR1 = i;                          /* Turn off LED */
    }
    for (i = 1<<23; i > 1<<16; i >>=1 ) {  /* Blink LED 7,6,5,4,3,2,1 */
      IOSET1 = i;                          /* Turn on LED */
      wait ();                             /* call wait function */
      IOCLR1 = i;                          /* Turn off LED */
    }
  }
}

Tagli

Bu konuda ben de takıldım. Merak ettiğim şey bunu Linux içinde yazılan bir C kodu ile nasıl yapacağım. Kerneli kernel.org'dan çekip mini2440 için derledim. rootfs'i buildroot ile oluşturdum. Mini2440'ın içinde uboot var. Tüm sistem (uboot hariç) SD kart üzerinde. Sistem iyi kötü açılıyor, konsola kadar geliyorum. Elimde bomboş bir sistem var...  ::). LED'lere ve GPIO'lara erişmek için sanırım /dev içinde node'lara ihtiyacım var ama benim sistemde bunlar yok. Bunları mknod komutuyla mı oluşturmam gerekiyor? (kernelde LED ve GPIO desteği eklediğimi hatırlıyorum). Eğer öyle ise major ve minor numaraları ne olmalı? Yoksa başka bir yolu mu var?
Gökçe Tağlıoğlu

SpeedyX

Öncelikle bu ledleri yakıp söndürebilen, kernel layerında yazılmış bir modülün olmalı, onu load ettikten sonra ioctl kullanarak iletişim kurabilirsin. mknode işini o modül senin yerine de yapabilir. Kernel ve userspace seviyelerinde kod yazmak oldukça farklı şeyler. Modülün yoksa onu da kendin yazacaksın, işlemcinin kendi header dosyalarındaki register tanımlamalarını kullanarak istediğini yaptırabilirsin (linux kernel çalışma mantığına uygun olmak şartıyla).

doctor21

MC_Skywalker
Harici olarak bağlayacağım ledi yakıp söndürme kodlarını c#  ile yazma şansım yok mu acaba? Visual Studio 2005 ve c# kullanarak  bunu yapmak istiyorum ,,,,

MC_Skywalker

Bu konu ile hiç ilgilen medim ama NXP nin sitesine bakmakta fayda var belki AN içinde vardır.


monetro

arkadaşlar qt ile ilgili bilgisi olan varmı hangi sistemler bunlar ve nasıl kullanılıyor.