Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Microchip PIC => Konuyu başlatan: alfurkan1064 - 07 Ekim 2022, 16:48:14

Başlık: Menü Algoritma Tavsiyesi
Gönderen: alfurkan1064 - 07 Ekim 2022, 16:48:14
xxxx
Başlık: Ynt: Menü Algoritma Tavsiyesi
Gönderen: ziyaretci - 07 Ekim 2022, 18:15:08
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;
    }
}

Başlık: Ynt: Menü Algoritma Tavsiyesi
Gönderen: alfurkan1064 - 07 Ekim 2022, 18:27:32
Fikrinize katılmamakla birlikte değerli yorumunuz için teşekkür ederim,bu haliyle daha okunaklı ve düzenli.
Başlık: Ynt: Menü Algoritma Tavsiyesi
Gönderen: mehmet - 07 Ekim 2022, 21:31:22
Hatta
if(a == 1) b = 0;gibi olanları,
if(a == 1)
{
  b = 0;
}
olarak da düzeltmeli...
Başlık: Ynt: Menü Algoritma Tavsiyesi
Gönderen: power20 - 07 Ekim 2022, 21:54:19
O hata değildir. Noktalı virgül çözüyor olayı.

if(a == 1)
 b = 0;
bile geçerlidir . Tek ifade olduğu için
Başlık: Ynt: Menü Algoritma Tavsiyesi
Gönderen: MrDarK - 07 Ekim 2022, 22:24:30
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.
Başlık: Ynt: Menü Algoritma Tavsiyesi
Gönderen: forsa1975 - 07 Ekim 2022, 22:42:10
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.


Başlık: Ynt: Menü Algoritma Tavsiyesi
Gönderen: alfurkan1064 - 08 Ekim 2022, 13:30:06
Konu gereksiz yerlere gelmiş kapatılıp silinebilir.
Başlık: Ynt: Menü Algoritma Tavsiyesi
Gönderen: Sozuak - 08 Ekim 2022, 17:54:06
Ü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.
Başlık: Ynt: Menü Algoritma Tavsiyesi
Gönderen: alfurkan1064 - 08 Ekim 2022, 20:09:59
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.
Başlık: Ynt: Menü Algoritma Tavsiyesi
Gönderen: Sozuak - 08 Ekim 2022, 22:16:07
İ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.