arkadaşlar şekildeki gibi bi ana void bide alt void fonksiyonu var alt menüyü cağırıyorum işliyor ama işim bitince alt menüden çıkıp tekrar void main()'e dönmek istiyorum dönemiyorum bi kolayı varmıdır bunun ?
Kod:
void alt_menu (void);
void main()
while(1)
{
anaprog:
if(input(pin_c0)) // menu butonuna basıldı (alt menudeyim)
{
delay_ms(300);
c==1;
while (C<1)
{
lcd_gotoxy(2,3);
lcd_putc("alt menu ");
if(input(pin_c2)) //alt menude ok butonuna basıldı
{
delay_ms(300);
lcd_send_byte(0,0x01);
alt_menu(); // alt menuyu cagırdım ==========> ALT MENU CALISIYOR
}
if(input(pin_c1))
{
delay_ms(300);
c==2;
lcd_send_byte(0,0x01);
goto anaprog;
}
}
hocam bu mantığın benzerini denedim şimdi bunuda denedim işe yaramıyor alt menüye bi girdimi ordan çıkamıyor geriye yapmak istediğim şu
////////////////////////////////////
ana programımım çalışcak
.
.
(alt yordam çağrılınca ana programı bekletecek oraya gidecek içini calıştırcak işimiz bitince)
.
burdan yani ana programa kaldığı yerden devam edecek
.
.
///////////////////////////////////
sanıyorum bu iş kesmelerle yapılıyor ama yeni olduğum için mantığını oturtamadım daha ve anladığım kadarıyla bu void olayında ikiside kendi başına programmış gibi davranıyor yapmak istediğimde biri ötekinin alt fonksiyonu olcak saygılar teşekkürler ayrıca ayırdığınız vakit için.
Bu işin kesme ile bir alakası yok bence.
Tabii kesmelik bir iş yapmak istiyorsan, orasını bilemem.
Ancak normalde ana program çalışıyorken;
Bir fonksiyonu çağırırsın, o fonksiyon işlevini bitirdikten sonra, eğer geriye değer döndürecekse döndürür, döndürmeyecekse çağrıldığı yere dallanır.
Olay bu şekilde işlenir...
if(input(pin_c0)) // menu butonuna basıldı (alt menudeyim)
{
delay_ms(300);
c==1;
while (C<1)
{
lcd_gotoxy(2,3);
lcd_putc("alt menu ");
if(input(pin_c2)) //alt menude ok butonuna basıldı
{
delay_ms(300);
lcd_send_byte(0,0x01);
alt_menu(); // alt menuyu cagırdım
c==2;
}
if(input(pin_c1))
{
delay_ms(300);
c==2;
lcd_send_byte(0,0x01);
goto anaprog;
}
}
}
lcd_gotoxy(2,3);
lcd_putc("ana ekran");
}
}
////////////// alt menu icindeki ilk menu fiyat menusu ////////////////
void alt_menu()
{
lcd_gotoxy(1,1);
lcd_putc("fiyat menusu");
b==1;
while (1)
{
if(input(pin_c3)) /// iptale bastım
{
delay_ms(300);
lcd_gotoxy(1,2);
lcd_putc("fiyattan cık");
delay_ms(300);
c==2;
}
}
lcd_gotoxy(1,2);
lcd_putc("fiyattan cık");
////////////// alt menu icindeki ilk menu fiyat menusu ////////////////}
kodun tamamu bu 3 tane tuşum var (ok , iptal , menu) menuye basınca alt menuye gidecek burda iki menum olcak fiyat ve km
fiyatın üzerindeyken ok basarsam fiyatın içine gircek burdaki fiyatın içi olayınıda void de alt menu olarak yaptım bastım içine girdi burda işimi hallettim diyelim ok yada iptale basarsam komple ana ekrana gitsin ana ekranımda void main de ama işte oraya gidemiyor
estafurullah tabiki
biraz araştırmıştım buraya yazmadan önce #org return gibi komutlar biraz yapmak istediğime cevap verir gibi ama dediğim gibi yeni olunca nereye neyi kullancağımı kestiremiyorum