Menü Tasarım Algoritma Önerisi

Başlatan electroshock, 25 Ocak 2017, 16:54:50

ahmet_zxc

sabırla bekliyoruz.

işlerinizde Allah kolaylık versin.

ali ihsan akbaba


boreas

Bu menü algoritmasına prosedür işaretçisi eklenemez mi ?
arttırma azaltma gibi bir değer değilse ya da arttırma azaltma işlemi farklı çalışacaksa bu kez farklı bir prosedür çalıştırılabilir  mi ?
C'yi basit düzeyde biliyorum sürekli pascal temelim olduğu için anlamakda zorlanmıyorum ama artık inat etmeyip C diline hakim olmam gerekiyor. Bu işaretciler ile böyle bir işlem yapılabilir gibi geliyor.
Örnek ;
{"Sıcaklık", "Temperature"}, [&a,0] , [0,10], [0,100],0"} // Sıcaklık menüsü
[/size]{"Saat", "Time"}, [&saat,&dakika] , [0,23], [0,59],&menu2"} // Saat menüsü
[/size]gibi
[/size]





[/size]

sımışka

#18
halen bekliyoruz @Klein hocam  :)

sinus

Ben bu şekilde yapmıştım. İsteyen state machine konusunu araştırabilir.

Menu tuşu ana fonksiyon ve diğerleri arasında gezinmeyi sağlıyor. Diğer butonlarda değişkenleri artırmayı ve azaltmayı sağlıyor.

while(1)
{
 switch(durum)
 {
 case 0: //Ana program
 break;

 case 1: // Menu1 
 lcd.print(degisken1);
 break;
 
 case 2: // Menu2 
 lcd.print(degisken2);
 break;
 }
}



#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{

 if(P1IFG&BIT0) //Eksiltme tuşu
 {
 switch(durum)
 {
 case 0:
 break;

 case 1:
 degisken1--;
 break;
 
 case 2:
 degisken2--;
 break;
 
 P1IFG&=~BIT0; //kesme bayrağı temizlendi. 
 }


 if(P1IFG&BIT1) //Menü tuşu
 {
  switch(durum)
 {
 case 0:
 durum=1;
 break;

 case 1:
 durum=2;
 break;
 
 case 2:
 durum=0;
 break;
 }
 
 P1IFG&=~BIT1; //kesme bayrağı temizlendi. 
 }
 
  if(P1IFG&BIT2) // Artırma tuşu
 {
 
 switch(durum)
 {
 
 case 0:
 break;

 case 1: 
 degisken1++;
 break;
 
 case 2:
 degisken2++;
 break;
 
 P1IFG&=~BIT2; //kesme bayrağı temizlendi.
}

}

hwdesigner

Klein hocam yine döktürmüş. Çok teşekkürler.

gokhangokcen

#21
@Klein üstad ellerine sağlık. Rica etsem konuya biraz daha açıklık getirebilir miyiz? konu epey eskide kalmış ama hem işaretçileri öğrenmek adına hem bir menü oluşturmak adına bir kaç sorum olacaktı.

Kullandığım derleyici Atollic True Studio;

typedef struct{
  char *Header;
  int *  Var;
  int min;
  int max;
}TMenuItem;

int a = 0;
int b = 0;
int c = 0;

const TMenuItem OrtamMenu[]= {
    {"Sıcaklık", &a , 10, 100},
    {"Nem", &b, 45, 70},
    {"Basınc", &c , 100, 2000},
    {0},
};

bu şekilde typedef tanımlamaları yaptıktan sonra main içerisinde bu itemlere erişmek için tam olarak ne yapmak gerekiyor?

*Edit:

Hatta mümkünse eğer siz tarif edin ben elimden geldiğince yapayım ve konuyu hep birlikte öğrenelim. Alt menülerin olduğu bir menü tasarımını birlikte geliştirelim herkes faydalansın üstad.

Pointerlar konusunda bilgili arkadaşımız illaki vardır forumda. Örnekteki menü algoritmasında yazdır fonksiyonunu nasıl kurabiliriz?
Bildiğini paylaşmak, Allah'ın verdiği öğrenme yeteneğinin zekatıdır.