اطلاعیه

Collapse
No announcement yet.

کار نکردن یک ستون از keypad با AVR

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

    کار نکردن یک ستون از keypad با AVR

    با سلام.من یک پروژه با AVR نوشتم که توش مقادیر رو از keypad میگیره و رو ال سی دی گرافیکی نمایش میده اما وقتی keypad رو وصل میکنم همه کلیدها به درستی کار میکنند به غیر از ستون اول. keypad 3*4 هست.ممنون میشم اگه کمکم کنید.

    #2
    پاسخ : کار نکردن یک ستون از keypad با AVR

    نوشته اصلی توسط saeedreisi75@gmail.com نمایش پست ها
    با سلام.من یک پروژه با AVR نوشتم که توش مقادیر رو از keypad میگیره و رو ال سی دی گرافیکی نمایش میده اما وقتی keypad رو وصل میکنم همه کلیدها به درستی کار میکنند به غیر از ستون اول. keypad 3*4 هست.ممنون میشم اگه کمکم کنید.
    سلام
    خوب فکر کنم افراد حزب چپ گرایان کشور گینه بیسائو مسئولش باشن!!!!
    حداقل یه کدی، مداری، نقشه ای چیزی بذارید تا بشه نظر داد

    دیدگاه


      #3
      پاسخ : کار نکردن یک ستون از keypad با AVR

      char keypad()
      {
      PORTC.0=0;
      if(PINC.4==0)
      {delay_ms(30);
      if(PINC.4==0){
      k=1;
      ragham++;
      while(PINC.4==0);
      }
      }
      if(PINC.5==0)
      {delay_ms(30);
      if(PINC.5==0){
      k=2;
      ragham++;
      while(PINC.5==0);
      }
      }
      if(PINC.6==0)
      {delay_ms(30);
      if(PINC.6==0){
      k=3;
      ragham++;
      while(PINC.6==0);
      }
      }
      PORTC.0=1;
      PORTC.1=0;
      if(PINC.4==0)
      {delay_ms(30);
      if(PINC.4==0){
      k=4;
      ragham++;
      while(PINC.4==0);
      }
      }
      if(PINC.5==0)
      {delay_ms(30);
      if(PINC.5==0){
      k=5;
      ragham++;
      while(PINC.5==0);
      }
      }
      if(PINC.6==0)
      {delay_ms(30);
      if(PINC.6==0){
      k=6;
      ragham++;
      while(PINC.6==0);
      }
      }
      PORTC.1=1;
      PORTC.2=0;
      if(PINC.4==0)
      {delay_ms(30);
      if(PINC.4==0){
      k=7;
      ragham++;
      while(PINC.4==0);
      }
      }
      if(PINC.5==0)
      {delay_ms(30);
      if(PINC.5==0){
      k=8;
      ragham++;
      while(PINC.5==0);
      }
      }
      if(PINC.6==0)
      {delay_ms(30);
      if(PINC.6==0){
      k=9;
      ragham++;
      while(PINC.6==0);
      }
      }
      PORTC=0xff;
      PORTC.3=0;
      if(PINC.4==0)
      {delay_ms(30);
      if(PINC.4==0){
      //glcd_clear();
      //PORTB.3=1;
      k=11;
      //return k=reset;
      while(PINC.4==0);
      }
      }
      if(PINC.5==0)
      {delay_ms(30);
      if(PINC.5==0){
      k=0;
      ragham++;
      while(PINC.5==0);
      }
      }
      if(PINC.6==0)
      {delay_ms(30);
      if(PINC.6==0){
      // symbol=
      k=12;
      while(PINC.6==0);
      }
      }
      PORTC.3=1;
      return k;
      }
      جدیدترین ویرایش توسط saeedreisi75@gmail.com; ۱۴:۵۸ ۱۳۹۸/۰۳/۱۰.

      دیدگاه


        #4
        پاسخ : کار نکردن یک ستون از keypad با AVR

        خوب من برنامه شما رو کمی مرتب کردم و به این شکل در آوردم:
        char keypad(){
        PORTC.0=0;
        if(PINC.4==0)
        {
        delay_ms(30);
        if(PINC.4==0)
        {
        k=1;
        ragham++;
        while(PINC.4==0);
        }
        }
        if(PINC.5==0)
        {
        delay_ms(30);
        if(PINC.5==0)
        {
        k=2;
        ragham++;
        while(PINC.5==0);
        }
        }
        if(PINC.6==0)
        {
        delay_ms(30);
        if(PINC.6==0)
        {
        k=3;
        ragham++;
        while(PINC.6==0);
        }
        }


        PORTC.0=1;
        PORTC.1=0;
        if(PINC.4==0)
        {
        delay_ms(30);
        if(PINC.4==0)
        {
        k=4;
        ragham++;
        while(PINC.4==0);
        }
        }
        if(PINC.5==0)
        {
        delay_ms(30);
        if(PINC.5==0)
        {
        k=5;
        ragham++;
        while(PINC.5==0);
        }
        }
        if(PINC.6==0)
        {
        delay_ms(30);
        if(PINC.6==0)
        {
        k=6;
        ragham++;
        while(PINC.6==0);
        }
        }


        PORTC.1=1;
        PORTC.2=0;
        if(PINC.4==0)
        {
        delay_ms(30);
        if(PINC.4==0)
        {
        k=7;
        ragham++;
        while(PINC.4==0);
        }
        }
        if(PINC.5==0)
        {
        delay_ms(30);
        if(PINC.5==0)
        {
        k=8;
        ragham++;
        while(PINC.5==0);
        }
        }
        if(PINC.6==0)
        {
        delay_ms(30);
        if(PINC.6==0)
        {
        k=9;
        ragham++;
        while(PINC.6==0);
        }
        }


        PORTC=0xff;
        PORTC.3=0;
        if(PINC.4==0)
        {
        delay_ms(30);
        if(PINC.4==0)
        {
        //glcd_clear();
        //PORTB.3=1;
        k=11;
        //return k=reset;
        while(PINC.4==0);
        }
        }
        if(PINC.5==0)
        {
        delay_ms(30);
        if(PINC.5==0)
        {
        k=0;
        ragham++;
        while(PINC.5==0);
        }
        }
        if(PINC.6==0)
        {
        delay_ms(30);
        if(PINC.6==0)
        {
        // symbol=
        k=12;
        while(PINC.6==0);
        }
        }


        PORTC.3=1;
        return k;
        }

        ظاهرا اون طوری که فهمیدم برنامه به سطر ها مقدار صفر میده و از ستون ها میخونه. فقط اول کد باید پول آپ پین های متصل به ستون ها فعال بشه که نشده. برنامه تو نگاه اول من مشکل خاصی نداره و اگر یک ستون خاص کار نمیکنه، احتمالا مشکل سخت افزاریه. باید با یک برنامه ساده دیگه بررسی کنید که پین متصل به ستون اول که میگید مشکل داره سالمه یا نه. اگر سالم بود احتمالا خود کیپد مشکل داره. کیپدهای ارزون خرابی زیاد دارن.

        دیدگاه


          #5
          پاسخ : کار نکردن یک ستون از keypad با AVR

          ;کیپد رو هم تست کردم(مثلا به سطرها ولتاژ میدادم و با زدن کلید از ستون ها خروجی میگرفتم یا برعکس)سالم بود.نمیدونم چکارش کنم.تو پروتئوس هم درست جواب میده.

          دیدگاه


            #6
            پاسخ : کار نکردن یک ستون از keypad با AVR

            نوشته اصلی توسط saeedreisi75@gmail.com نمایش پست ها
            ;کیپد رو هم تست کردم(مثلا به سطرها ولتاژ میدادم و با زدن کلید از ستون ها خروجی میگرفتم یا برعکس)سالم بود.نمیدونم چکارش کنم.تو پروتئوس هم درست جواب میده.
            پایه میکروکنترلر رو تست کردید؟ یه برنامه بنویسید که اون پایه ورودی باشه و ببینید درست کار میکنه یا نه

            Sent from my LG-H870S using Tapatalk

            دیدگاه


              #7
              پاسخ : کار نکردن یک ستون از keypad با AVR

              نوشته اصلی توسط saeedreisi75@gmail.com نمایش پست ها
              با سلام.من یک پروژه با AVR نوشتم که توش مقادیر رو از keypad میگیره و رو ال سی دی گرافیکی نمایش میده اما وقتی keypad رو وصل میکنم همه کلیدها به درستی کار میکنند به غیر از ستون اول. keypad 3*4 هست.ممنون میشم اگه کمکم کنید.
              سلام
              اگه برنامه ات درسته (وقت نکردم بخونم)، مشکل مربوط به فعال بودن پورت JTAG است!
              که به صورت پیش فرض روی پورت C مپ شده!
              برو فیوز بیتش رو غیر فعال کن، انشاالله حل میشه!
              مراقب باش، بقیه فیوز بیتها رو به هم نریزی!!
              ◙◙◙◙◙ میخوام به دوستان یه کتاب معرفی کنم! وقت کردید، بخونید - اسمش هست قرآن، سال نشر 10، نویسنده: خدا . ◙◙◙◙◙

              دیدگاه


                #8
                پاسخ : کار نکردن یک ستون از keypad با AVR

                نوشته اصلی توسط saeedreisi75@gmail.com نمایش پست ها
                با سلام.من یک پروژه با AVR نوشتم که توش مقادیر رو از keypad میگیره و رو ال سی دی گرافیکی نمایش میده اما وقتی keypad رو وصل میکنم همه کلیدها به درستی کار میکنند به غیر از ستون اول. keypad 3*4 هست.ممنون میشم اگه کمکم کنید.
                سلام
                به نظرم مشکل شما %99 به لینک زیر مربوط است..
                Switch Debouncing

                *** يا راهي خواهم يافت، يا راهي خواهم ساخت ... ***

                دیدگاه


                  #9
                  پاسخ : کار نکردن یک ستون از keypad با AVR

                  با تشکر از همه عزیزان.پایه های B رو اختصاص دادم به صفحه کلید درست شد.فکر کنم اشکال از پایه های C بود.

                  دیدگاه


                    #10
                    پاسخ : کار نکردن یک ستون از keypad با AVR

                    نوشته اصلی توسط saeedreisi75@gmail.com نمایش پست ها
                    با تشکر از همه عزیزان.پایه های B رو اختصاص دادم به صفحه کلید درست شد.فکر کنم اشکال از پایه های C بود.
                    همونطور که اون دوستمون فرمودن، احتمالا jtag رو غیر فعال نکرده بودید. jtag رو موقع پراگرام کردن فیوزبیت ها باید غیر فعال کنید

                    Sent from my LG-H870S using Tapatalk

                    دیدگاه

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