اطلاعیه

Collapse
No announcement yet.

مشکل کیپد

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل کیپد

    سلام. تا حالا شده یه برنامه بنویسید بعد ببینید اشتباه داره اجرا میشه؟
    من یه برنامه کی پد نوشتم، تو پروتئوس جواب میده ولی در عمل یه ستون رو درست اسکن نمیکنه! از برنامه اطمینان دارم. دفعه اول نیست با کی پد کارمیکنم! برنامه رو به چند روش نوشتم! تو پروتئوس درست کار میکنه ولی تو عمل فقط یه ستون رو درست نمیخونه! :angry:
    یا یه میکرو دیگه هم چک کردم همینجویه! کی پد رو پورت C هست و jtag هم غیر فعال! مقاومت های پول اپ و ... هم رعایت کردم! اینم اخرین برنامه ای که نوشتم!!!!

    کد:
    unsigned char keypad()
     { 
     while(1){
           
     PORTC=0x01;
     while(c1==1) key=1;
     while(c2==1) key=2;
     while(c3==1) key=3;
     while(c4==1) key=16;
    
    
     PORTC=0x02;
     while(c1==1) key=4;
     while(c2==1) key=5;
     while(c3==1) key=6;
     while(c4==1) key=15;
    
     PORTC=0x04;
     while(c1==1) key=7;
     while(c2==1) key=8;
     while(c3==1) key=9;
     while(c4==1) key=14;
    
     PORTC=0x08;
     while(c1==1) key=11;
     while(c2==1) key=0;
     while(c3==1) key=12;
     while(c4==1) key=13;  
    
     if(!(key==20))
     {
     return key;
     key=20;  
     }
     }  
     }
    c1 , c2 ,c3 ,c4 هم difine شدن PORTC.4 تا PORTC.7
    فقط یک ستون مشکل داره! اونم ستون c1==1
    دستور while گذاشتم که تازمانی که کلید فشرده شده صبر کنه! فقط تو دستور c1==1 مشکل داره!(هر چهارتا c1==1!!!!)
    بقیه برنامه درست کار میکنه! با حلقه for و روش های دیگه نوشتم.بازم همینه!
    سخت افزار رو هم خیلی چک کردم! :sad: اخه چیزی نداره! این دفعه نمیدونم چرا اینجوری شده!
    به جای اینکه ستون اول کلید ردیف اول رو نشون بده عدد سطر بعد رو نشون میده! برای هر سطر تو ستون اول میره و سطر بعدی رو نشون میده! مثلا به جای 1 عدد 4 میده! :smile: فقط تو ستون اول!!

    #2
    پاسخ : مشکل کیپد

    سلام
    مشکل کارت رو متوجه نشدم ولی یه سوال برام پیش اومد مگه شما چهار بیت اول پورت سی رو تعیین کننده سطر و چهاربیت اخر تعیین کننده ستون انتخاب نکردین
    پس در این صورت با یک شدن بیت اول باید یکی از چهار عدد اول انتخاب شه.؟
    كرشمه اي كن و بازار ساحري بشكن @-}--@-}--@-}--به غمزه رونق و ناموس سامري بشكن
    ياصاحب الزمان(عج)

    دیدگاه


      #3
      پاسخ : مشکل کیپد

      بله. درسته!
      مشکل حل شد. با یه delay خیلی کم. من اومدم PORTC مثلا بیت 1 رو فعال میکردم(همون سطر اول)
      حالا تا کلید اول رو میزدم اولین دستور درست اجرا نمیشد. یعنی شرط برقرار نبود!
      یه delay در حد چند میکرو ثانیه دادم درست شد.
      ممنون

      دیدگاه

      لطفا صبر کنید...
      X