Menü Algoritma Tavsiyesi

Başlatan alfurkan1064, 07 Ekim 2022, 16:48:14

alfurkan1064

xxxx

ziyaretci

#1
Alıntı yapılan: alfurkan1064 - 07 Ekim 2022, 16:48:14Cümleten Selamun Aleyküm,

Bu şekilde bir menü yapım var bu 1 2 3 4 diye aynı sistemde ilerliyor bu sistemi daha profesyonel şekilde yapmak için nasıl bir profil çizmem gerekiyor ?.

while(mod==2)
{
write7219(1,0x67);write7219(2,0x7E);write7219(3,0X7E);write7219(4,0X6D);
if(input(TRESET)==0){delay_ms(350);giris=1;}
//if(input(BASLAT)==0){delay_ms(85);giris=1;}
while(giris==1 && mod==2)
{
decode7219(0XFF);
menu_goster(pausemod);
if(input(UD3)  == 0){pausemod=0; if(pausemod <= 0) pausemod = 0; delay_ms(18);}
if(input(UD4) == 0){pausemod=1; if(pausemod > 1) pausemod = 1; delay_ms(18);}
if(input(TRESET)==0){copy_to_eeprom(pausemod,24,23);delay_ms(100);mod=0;giris=0;}
}
if(input(UD4) == 0) 
{delay_ms(350);mod=3;}
if(input(UD3) == 0) 
{delay_ms(350);mod=1;}
}



Hocam önce kodu düzenlerseniz çok iyi olur. Bu haliyle pek ciddiye alınacağınızı düşünmüyorum.

Amme hizmeti:
while(mod==2)
{
    write7219(1,0x67);
    write7219(2,0x7E);
    write7219(3,0X7E);
    write7219(4,0X6D);
    
    if(input(TRESET)==0)
    {
        delay_ms(350);
        giris=1;
    }

    //if(input(BASLAT)==0)
    //{
    //    delay_ms(85);
    //    giris=1;
    //}

    while(giris==1 && mod==2)
    {
        decode7219(0XFF);
        menu_goster(pausemod);
        
        if(input(UD3)  == 0)
        {
            pausemod=0; 
 
            if(pausemod <= 0) 
                pausemod = 0; 
            
            delay_ms(18);
        }

        if(input(UD4) == 0)
        {
            pausemod=1; 

            if(pausemod > 1) 
                pausemod = 1; 
            
            delay_ms(18);
        }

        if(input(TRESET)==0)
        {
            copy_to_eeprom(pausemod,24,23);
            delay_ms(100);
            mod=0;
            giris=0;
        }
    }

    if(input(UD4) == 0) 
    {
        delay_ms(350);
        mod=3;
    }

    if(input(UD3) == 0) 
    {
        delay_ms(350);
        mod=1;
    }
}

alfurkan1064

Fikrinize katılmamakla birlikte değerli yorumunuz için teşekkür ederim,bu haliyle daha okunaklı ve düzenli.

mehmet

Hatta
if(a == 1) b = 0;
gibi olanları,
if(a == 1)
{
  b = 0;
}
olarak da düzeltmeli...
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

power20

#4
O hata değildir. Noktalı virgül çözüyor olayı.

if(a == 1)
 b = 0;
bile geçerlidir . Tek ifade olduğu için

MrDarK

Alıntı yapılan: mehmet - 07 Ekim 2022, 21:31:22Hatta
if(a == 1) b = 0;
gibi olanları,
if(a == 1)
{
  b = 0;
}
olarak da düzeltmeli...

Misra kurallarından biridir bu. Birde her if koşuluna bir else yazılmalı boş olsa bile.
Picproje Eğitim Gönüllüleri ~ MrDarK

forsa1975

Tuş ile ilerlenen menülerde bir harita oluşturuyorum.
İhtiyacım olan adımları belirliyorum. Ana ve alt menüler için mod numaraları tanımıyorum.
Örneğin 10,20.30... ana menü numaraları olurken. 11,12,13 alt menüler oluyor. Hangi tuşun hangi modda ne iş yapacağını tanımıyorum.

Kesme ile okunmuyor ise, ana döngüde tuşları takip eden basit bir fonksiyonun olmalı. Tuş algıladığı da o tuşla ilgili (Yukarıda bahsettiğim ) fonksiyon çağırılmalı. İşin hikaye kısmı bende böyle.



alfurkan1064

Konu gereksiz yerlere gelmiş kapatılıp silinebilir.

Sozuak

Üslüp hoş olmamış. İşiniz bitti diye ek olarak yazılan bilgiler böyle
çöpe atılır gibi atılmaz. Katkıda bulunmayacaksanız siz kapatıp gidebilirsiniz.

Forumlar sorunların çözümlenmesinden sonra silinmesi prensibiyle işlemediğinden elbette konu, uç bir durum yoksa yerinde kalır, ileride  benzer sorunu olan birisi gelir bulursa ona da  fayda sağlar.

alfurkan1064

Konu içeriğini bilmediğinizden dolayı bu şekilde konuşmanız çok doğal yazan kişiler sorun odaklı değilde yazılan koddaki stili tartışıp fikir
yürütmek istediği için konunun silinmesini talep ettim düşündüğünüz gibi çözüm oluşup konuyu kapatmadım dikkatlı okumanızı tavsiye ederim.

Sozuak

İlk mesajı silmişsiniz ama.

İçinde doğup büyüdüğünüz toplumu tanıyamadınız mı hala :)  hdd bozuldu ne yapayım diyene konfigürasyonunu sorup ekran kartın eski model değiştir daha iyi diyen insanların diyarı burası. Öyle değişik cevapları görünce hemen sil gitsin yok o kısım da bonus artık.