Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Cortex ARM => Konuyu başlatan: armsistem - 15 Mart 2012, 11:42:39

Başlık: lpc1769 buton & değişken
Gönderen: armsistem - 15 Mart 2012, 11:42:39
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.
Başlık: Ynt: lpc1769 buton & değişken
Gönderen: haydarpasamikro - 22 Mart 2012, 15:15:41
{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ı.