اطلاعیه

Collapse
No announcement yet.

مشکل با برنامه کیپد

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

    مشکل با برنامه کیپد

    سلام دوستان
    من برنامه زیر رو نوشتم
    //-------------------------------------
    while (1)
    {
    // Place your code here
    key=keypad();

    if(key=="70&quot
    {
    i++;
    while(key=="70&quot
    {
    };
    }
    if(key=="70" && i==1)
    {
    sprintf(str,"X:%4u",i);
    lcd_puts(str);
    lcd_clear();
    }
    if(key=="70" && i==2)
    {
    sprintf(str,"Y:%4u",i);
    lcd_puts(str);
    lcd_clear();
    }
    lcd_gotoxy(1,10);
    sprintf(buffer,"Key %d",key);
    lcd_puts(buffer);
    delay_ms(300);
    };
    }
    متغیر key از نوع char و متغیر i از نوع int تعریف شده. همونطور که در برنامه مشاهده میکنید. برنامه طوری نوشته شده که اگه کلید (on که متناظر با 70 هست) رو یکبار فشار بدیم یه چیز نشون بده و اگه دوبار فشار بدیم یه چیز دیگه. وقتی من این برنامه رو بدون صفحه کلید و با صفر و یک کردن یک پین از پورت b انجام میدم، همه چی درست کار میکنه اما حالا که از کیپد استفاده میکنم کار نمیکنه. نمونه برنامه ای هم که با پین نوشتم به صورت زیره و صحیح کار میکنه. مشکل کجاست؟
    while (1)
    {
    // Place your code here
    if(PINB.0==1)
    {
    key=1;
    i++;
    while(PINB.0==1)
    {
    };
    }
    if(key==1 && i==1)
    {
    x=10542;
    sprintf(str,"X:%4u",i);
    lcd_puts(str);
    lcd_clear();
    PINB.0=0;
    }
    if(key==1 && i==2)
    {
    x=10542;
    sprintf(str,"Y:%4u",i);
    lcd_puts(str);
    lcd_clear();
    PINB.0=0;
    }
    };

    #2
    پاسخ : مشکل با برنامه کیپد

    سلام برای راحتی کار میتونی از انکودر کی پد به شماره 74c922استفاده کنی که متناظر با هر کلید فشار داده شده یه کد bcd و یه پایه فعال شده برای وقفه که خیلی راحت میتونی با کد bcdتولید شده هر کاری انجام بدی
    MEHRENIA1366@GMAIL.COM
    مغز انسان خيلي پيچيده است و بخاطر همين هميشه دنبال راه حلهاي پيچيده ميگرده با کمي تامل ميشه راه حلهاي ساده تري رو پيدا کرد.هميشه پيچدگي وحجم بالا نشانه داشتن علم زياد نيست.

    دیدگاه


      #3
      پاسخ : مشکل با برنامه کیپد

      نوشته اصلی توسط mehrenia_1366
      سلام برای راحتی کار میتونی از انکودر کی پد به شماره 74c922استفاده کنی که متناظر با هر کلید فشار داده شده یه کد bcd و یه پایه فعال شده برای وقفه که خیلی راحت میتونی با کد bcdتولید شده هر کاری انجام بدی
      ممنون از راهنماییتون ولی امکان تغییر در سخت افزار ندارم. و باید از طریق نرم افزار مشکل رو حل کنم. به نظر شما مشکل از چیه؟
      من خودم فکر میکنم که متغیر مورد استفاده در if نباید از جنس char باشه. حالا چطور میشه متغیر char رو به int تغییر داد. از دستور atoi استفاده کردم خطا میده!!
      واقعا گیج شدم!

      دیدگاه


        #4
        پاسخ : مشکل با برنامه کیپد

        سلام من هیچ تجربه ای در مورد کد ویژن ندارم ولی بیسیک میتونم راهنمایی کنم
        MEHRENIA1366@GMAIL.COM
        مغز انسان خيلي پيچيده است و بخاطر همين هميشه دنبال راه حلهاي پيچيده ميگرده با کمي تامل ميشه راه حلهاي ساده تري رو پيدا کرد.هميشه پيچدگي وحجم بالا نشانه داشتن علم زياد نيست.

        دیدگاه


          #5
          پاسخ : مشکل با برنامه کیپد

          یعنی اینقدر این موضوع پیچیدست ک هکسی جوابشو نمیدونه؟

          دیدگاه

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