Mikroc Buton Okuma

Başlatan Teğmen, 02 Ocak 2017, 12:02:53

Teğmen

Merhaba arkadaşlar
Mikro C menü yapma sorununu aşağıdaki kodlarla çözdük sanırım ama if döngüsünde veya diğer döngülerde şartı sağlamasına bakmaksızın döngüye girip çıkıyor
ya da ben yanlış okutuyorum. if(!buton) demem mi doğru olur if(buton==1)veya 0 demem mi 1 veya 0 dediğimde döngüye girmiyor.ilk şekilde de anlamsızca girip çıkıyor.

void main()
{

   ADCON1 |=0x0F;
   CMCON  |=7;

   Lcd_Init();                        //LCD hazırlanıyor.
   Lcd_Cmd(_LCD_CURSOR_OFF);          //Ekrandan imleç kaldırıldı.
   Lcd_Cmd(_LCD_CLEAR);               //Ekran temizlendi.
   Lcd_Out(1,1,"GIRIS ICIN ENTER");
   
   
if (enter==0)     {delay_ms(50);i=0;k=0;}
if (enter && k==0){  delay_ms(50);
switch (i) {
             case 0:
             Lcd_Cmd(_LCD_CLEAR);               //Ekran temizlendi.
             Lcd_Out(1,1,"Menu 1.1 enter");
             delay_ms(1000);
             if (enter==0) {delay_ms(50);i=0; k=1;}
             break;
             
             case 1:
             Lcd_Cmd(_LCD_CLEAR);               //Ekran temizlendi.
             Lcd_Out(1,1,"Menu 2.1 enter");
             if (enter==1) {delay_ms(50);i=1; k=1;}
             break;
             
             case 2:
             Lcd_Cmd(_LCD_CLEAR);               //Ekran temizlendi.
             Lcd_Out(1,1,"Menu 3.1 enter");
             if (enter==1) {delay_ms(50);i=2; k=1;}
             break;
             
             case 3:
             Lcd_Cmd(_LCD_CLEAR);               //Ekran temizlendi.
             Lcd_Out(1,1,"Menu 4.1 enter");
             if (enter==1) {delay_ms(50);i=3; k=1;}
             break;
             
             }
             if(yukari==1)    i++;
             }
  if(enter==1 && k==1) {
  switch(i) {
             case 0:
             Lcd_Cmd(_LCD_CLEAR);               //Ekran temizlendi.
             Lcd_Out(1,1,"Menu 1.1");
             ///if (enter==1) {i=0; k=1;}
             break;
             case 1:
             Lcd_Cmd(_LCD_CLEAR);               //Ekran temizlendi.
             Lcd_Out(1,1,"Menu 2.1");
             ///if (enter==1) {i=0; k=1;}
             break;
             case 2:
             Lcd_Cmd(_LCD_CLEAR);               //Ekran temizlendi.
             Lcd_Out(1,1,"Menu 3.1");
             ///if (enter==1) {i=0; k=1;}
             break;
             case 3:
             Lcd_Cmd(_LCD_CLEAR);               //Ekran temizlendi.
             Lcd_Out(1,1,"Menu 4.1");
             ///if (enter==1) {i=0; k=1;}
             break;
             }
             }

Teğmen

Ark olayından kaynaklanıyormuş
While ile sorunu hallettim
Teşekkür ederim.


if (enter==1&& k==0){ while(!enter);
switch (i) {
             case 0:
             while(j==1){
             Lcd_Cmd(_LCD_CLEAR);               //Ekran temizlendi.
             Lcd_Out(1,1,"Menu 1.1 enter");
             delay_ms(50);
             if (!enter) {while(!enter);j=0; k=1;}}
             break;

Powered by EzPortal