lpc1769 buton & değişken

Başlatan armsistem, 15 Mart 2012, 11:42:39

armsistem

Arkadaşlar merhaba , deneme kitinde ufak bir deneme yaptım yalnız buton olayında bir sıkıntı var var , ya buton iki kere basıyor yada basmıyor donanımsal bir problem olmadığını düşünüyorum kodlar aşağıda , birde kodları inceleyen arkadaşlar eleştiride bulunursa çok sevinirim.

define_lib.c
#define led_p100(x) ((x) ? (LPC_GPIO1->FIOSET |= (1<<0))    : (LPC_GPIO1->FIOCLR = (1<<0)));
#define led_p101(x) ((x) ? (LPC_GPIO1->FIOSET |= (1<<1))    : (LPC_GPIO1->FIOCLR = (1<<1)));
#define led_p104(x) ((x) ? (LPC_GPIO1->FIOSET |= (1<<4))    : (LPC_GPIO1->FIOCLR = (1<<4)));
#define ok_0	LPC_GPIO0->FIOPIN & 0x01<<4
#define eksi	LPC_GPIO0->FIOPIN & 0x01<<5
#define arti	LPC_GPIO0->FIOPIN & 0x01<<6
#define ok_sag	LPC_GPIO0->FIOPIN & 0x01<<7
#define clr_sol	LPC_GPIO0->FIOPIN & 0x01<<8
#define clr	    LPC_GPIO0->FIOPIN & 0x01<<9
int operator=0;
uint8_t* ope_isim="",say;

define_lib.h
void operator_sec(void)
{if  ((ok_sag))   //butona basıldımı
{	
while (!(ok_sag)); //butonu bırakana kadar kısır döngü kal
{
operator=operator+1;
if(operator==1){ope_isim = "xxxx";}
else if (operator==2){ope_isim = "yyyy";}
lcd_gotoxy(1,1);lcd_yaz("seciniz");
lcd_gotoxy(2,1);lcd_yaz("                ");
lcd_gotoxy(2,1);lcd_yaz(ope_isim);
}}

if ((clr_sol))
{while (!(clr_sol));
{operator=operator-1;
if(operator==1){ope_isim = "xxxx";}
else if(operator==2){ope_isim = "yyyy";}
lcd_gotoxy(1,1);lcd_yaz("seciniz");
lcd_gotoxy(2,1);lcd_yaz("                ");
lcd_gotoxy(2,1);lcd_yaz(ope_isim);
lcd_gotoxy(2,7);lcd_yaz(say);
}}}



Kullanıcı butonlara basarak seçenek kullanıcak o yüzden yukarıdaki gibi düz mantık kullandım ,keil de dizileri nasıl kullanabilirim mesala aşağıdaki gibi olabilirmi veya bu işin mantığı nedir.
string operator[3]="'x','y','z'";


Şimdiden teşekkür ederim.

haydarpasamikro

{if  ((ok_sag))   //butona basıldımı
{   
while (!(ok_sag)); //butonu bırakana kadar kısır döngü kal


-Butona basıldığında True oluyorsa, butona basılı olduğu sürece True ile bekleme yapmak gerekir..Yani:

{if  ((ok_sag))   //butona basıldımı
{   
while ((ok_sag)); //butonu bırakana kadar kısır döngü kal

! işareti olmamalı.
Mikro Dünyası.Haydarpaşa Teknik ve Endüstri Meslek Lisesi Mikrodenetleyici Atl. Şefi