lpc2138 while komutu yardım

Başlatan burakoz1989, 01 Şubat 2012, 20:58:18

burakoz1989

merhaba arkadaşlar lpc2138 le basılan butana karşılık bir ledi yakmak istiyorum aynı zamanda butona basınce x. led yanıyo yazacak buraya kadar sıkıntı yok gayet güzel çalışıyo fakat hiç bir tusa basmayınca led yanmıyoru lcdde bi türlü yazdıramadım while döngüsüne girmiyo ne yaptıysam sokamadım girincede geri cıkmıyo yardımlarınızı esırgemezseniz çok mutlu olurum teşekkürler
#include <lpc21xx.h>
#include <stdio.h>
#include <lcd.h>
#include <delay.h>




int main(void)
{
 unsigned int a;
 IODIR0=0X00FF00FF;
 IODIR1=0XFF000000;
 IOCLR1=0XFF000000;



init_lcd();

while(1)
{




lcd_puts("LCD 2x16");

delays(1);


lcd_clr();

lcd_puts("LCD DENEME");

lcd_gotoxy(1,0);

lcd_puts("MCU LPC2138");

delays(1);

lcd_clr();

lcd_puts("WRITE By: OZCAN ");

lcd_gotoxy(1,0);

lcd_puts("xxxxxxxxxxxx");

delays(1);

lcd_clr();
while (1)
{

/////////////////////////////////////////////////////////////
while (IOPIN1&0X00010000)
{


   lcd_gotoxy(0,0);
  lcd_puts("LED 1 YANIYOR");

  
  }
//////////////////////////////////////////////////////////

 
  IOCLR1 = 0XFFFFFFFF;  
  lcd_clr();

 
 /////////////////////////////////////////////////////////////
while (IOPIN1&0X00020000)
{
  IOSET1= ((IOPIN1<<=8)&0X00020000);
  lcd_gotoxy(0,0); 
  lcd_puts("LED 2 YANIYOR");

  
  }
////////////////////////////////////////////////////////// 
 IOCLR1=0XFFFFFFFF; 
 lcd_clr();
  /////////////////////////////////////////////////////////////
while (IOPIN1&0X00040000)
{
  IOSET1= ((IOPIN1<<=8)&0X00040000);
  lcd_gotoxy(0,0); 
  lcd_puts("LED 3 YANIYOR");

  
  }
////////////////////////////////////////////////////////// 
 IOCLR1=0XFFFFFFFF; 
 lcd_clr();
  /////////////////////////////////////////////////////////////
while (IOPIN1&0X00080000)
{
  IOSET1= ((IOPIN1<<=8)&0X00080000);
  lcd_gotoxy(0,0); 
  lcd_puts("LED 4 YANIYOR");

  
  }
////////////////////////////////////////////////////////// 
 IOCLR1=0XFFFFFFFF; 
 lcd_clr();
 /////////////////////////////////////////////////////////////
while (IOPIN1&0X00100000)
{
  IOSET1= ((IOPIN1<<=8)&0X00100000);
  lcd_gotoxy(0,0); 
  lcd_puts("LED 5 YANIYOR");

  
  }
////////////////////////////////////////////////////////// 
 IOCLR1=0XFFFFFFFF; 
 lcd_clr();
/////////////////////////////////////////////////////////////
while (IOPIN1&0X00200000)
{
  IOSET1= ((IOPIN1<<=8)&0X00200000);
  lcd_gotoxy(0,0); 
  lcd_puts("LED 6 YANIYOR");

  
  }
////////////////////////////////////////////////////////// 
  IOCLR1=0XFFFFFFFF; 
 lcd_clr();
/////////////////////////////////////////////////////////////
while (IOPIN1&0X00400000)
{
  IOSET1= ((IOPIN1<<=8)&0X00400000);
  lcd_gotoxy(0,0); 
  lcd_puts("LED 7 YANIYOR");

  
  }
////////////////////////////////////////////////////////// 
  IOCLR1=0XFFFFFFFF; 
 lcd_clr();
/////////////////////////////////////////////////////////////
while (IOPIN1&0X00800000)
{
  IOSET1= ((IOPIN1<<=8)&0X00800000);
  lcd_gotoxy(0,0); 
  lcd_puts("LED 8 YANIYOR");

  
  }
////////////////////////////////////////////////////////// 
  IOCLR1=0XFFFFFFFF; 
 lcd_clr();
 


 while (buraya ne yazmam gerektigini bulamadım)
{
  lcd_gotoxy(0,0); 
  lcd_puts("LEDLER YANMIYOR");
   delays(2);
}
/////////////////////////////////////////////////////////////

}
}


}



yamak

Bunu neden while donguleri ile yaptınız ki. İf kullanarak da yapabilirisiniz. Hangi butona basıldığını if sorgusu ile kontrol edin tüm sorguları yaptıktan sonra else komutunun altında lcd'ye  hiç bir led yanmıyo yazdırabilirsiniz.

burakoz1989

çok teşekkür ederim hocam if yaptım gayetde guzel çalışıyo ama merak ettiğim bazı noktalar var 
while ((IOPIN1|0X00000000) ==0)  BU VEYA
while  (!(IOPIN1|0X00000000) )

donguler çalışmıyo nerde yanlış yapıyorum.Hocam bide lcd kütüp hanesi bana ait değil yabacı bir siteden buldum allta sürekli dolanan imleci kaldırmak istiyorum bunu nası yapabilirim acaba yardımlarınız için tekrar çok teşekkür ederim.Ayrıca düzgün çalışan program ve isis sümülasyonu linkte belki birine lazım olur
http://hotfile.com/dl/144897801/32747d5/LCD_ve_led_uygulamas.rar.html

M_B

Alıntı yapılan: burakoz1989 - 02 Şubat 2012, 14:57:46

Hocam bide lcd kütüp hanesi bana ait değil yabacı bir siteden buldum allta sürekli dolanan imleci kaldırmak istiyorum bunu nası yapabilirim acaba yardımlarınız için tekrar çok teşekkür ederim.

lcd.h dosyasında
void init_lcd()
{
	
	lcd_cmd(0x02);	//4 bit mode
	lcd_cmd(0x28);	//2 line, 5x7 dots, 4bit mode
	lcd_cmd(0x0c);	
	lcd_cmd(0x06);	
	lcd_cmd(0x80);	//koordinat
	lcd_cmd(0x0E);       // cursor ON 
	return;
}

en alt satırın ustundeki
lcd_cmd(0x0E);
yi
lcd_cmd(0x0C);
yaparsan imlecin yanıp sonmesi durur.
Kolay gelsin.

İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

burakoz1989

Çok sağolun hocam zaman ayırdığınız için teşekkür ederim.  :)