NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 4492 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از 1 به 20 از 22

موضوع: ساخت منوی ساده

  1. #1
    کاربر فعال saeidhp آواتار ها
    تاریخ عضویت
    Apr 2011
    نام
    سعید
    نوشته ها
    155
    تشکر
    665
    تشکر شده 76 بار در 44 پست

    پیش فرض ساخت منوی ساده

    سلام

    من میخوام با codevision یه منوی ساده مثل منوی تلفن درست کنم ولی ظاهرا یه جای کارم اشکال داره


    کد:
    s=0;
    
    if(PINA.2==0)s++;
            if (PINA.0==0 && s==1)
            {
            i++;

    در واقع میخوام وقتی یکبار کلید A.2 رو میزنم مقدار s=1 بشه و وقتی که مقدار s=1 شد و کلید A.0 عمل بکنه و مقدار i رو در lcd نمایش بده

    ممنون میشم راهنمایی کنید

  2. تشکرها از این نوشته :


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  4. #2
    تازه وارد
    تاریخ عضویت
    Oct 2011
    نوشته ها
    1
    تشکر
    1
    تشکر شده 3 بار در 2 پست

    پیش فرض

    نقل قول نوشته اصلی توسط saeidhp نمایش پست ها
    سلام

    من میخوام با codevision یه منوی ساده مثل منوی تلفن درست کنم ولی ظاهرا یه جای کارم اشکال داره


    کد:
    s=0;
    
    if(PINA.2==0)s++;
            if (PINA.0==0 && s==1)
            {
            i++;

    در واقع میخوام وقتی یکبار کلید A.2 رو میزنم مقدار s=1 بشه و وقتی که مقدار s=1 شد و کلید A.0 عمل بکنه و مقدار i رو در lcd نمایش بده

    ممنون میشم راهنمایی کنید
    سلام
    فک میکنم شما باید از یه delay با مقدار مناسب کارتون استفاده کنید

  5. کاربران : 2 تشکر کرده اند از شما afdm_2020 برای ارسال این پست سودمند:


  6. #3
    کاربر فعال saeidhp آواتار ها
    تاریخ عضویت
    Apr 2011
    نام
    سعید
    نوشته ها
    155
    تشکر
    665
    تشکر شده 76 بار در 44 پست

    پیش فرض

    اگه delay رو برای اینکه هنگام فشردن کلید A.2 که به مقدار s اضافه میکنه میگید که باید بگم با این مشکل حل نمیشه

    من براش شرط زیر رو گذاشتم که با زدن کلید بیشتر از یه واد بهش اضافه نشه


    کد:
    if (PINA.2==0 && m)
    {
    s++;
    m=0;
    }
    if(PINA.2==1)m=1;

  7. تشکرها از این نوشته :


  8. #4
    کاربر فعال saeidhp آواتار ها
    تاریخ عضویت
    Apr 2011
    نام
    سعید
    نوشته ها
    155
    تشکر
    665
    تشکر شده 76 بار در 44 پست

    پیش فرض

    اگه delay رو برای اینکه هنگام فشردن کلید A.2 که به مقدار s اضافه میکنه میگید که باید بگم با این مشکل حل نمیشه

    من براش شرط زیر رو گذاشتم که با زدن کلید بیشتر از یه واحد اضافه نشه


    کد:
    if (PINA.2==0 && m)
    {
    s++;
    m=0;
    }
    if(PINA.2==1)m=1;
    ویرایش توسط saeidhp : 04-01-2012 در ساعت 17:31

  9. تشکرها از این نوشته :


  10. #5
    تازه وارد
    تاریخ عضویت
    Jun 2009
    نوشته ها
    1
    تشکر
    0
    تشکر شده 2 بار در 1 پست

    پیش فرض

    کد:
    s=0;
    
    if(PINA.2==0) s=1;
    else 
    s=0;
            if (PINA.0==0 && s==1)
            {
            i++;
    ویرایش توسط rayk : 04-01-2012 در ساعت 18:17

  11. کاربران : 2 تشکر کرده اند از شما rayk برای ارسال این پست سودمند:


  12. #6
    کاربر فعال saeidhp آواتار ها
    تاریخ عضویت
    Apr 2011
    نام
    سعید
    نوشته ها
    155
    تشکر
    665
    تشکر شده 76 بار در 44 پست

    پیش فرض

    من با مقادیر s کار دارم پس نمیتونم قسمت else s=0 رو استفاده کنم

  13. تشکرها از این نوشته :


  14. #7
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    با سلام دوست عزيز شما بايد از دستور While استفاده كنيد. به اين صورت يعني با هر بار فشار دادن دكمه فقط يه واحد به مقدار اضافه ميشه.
    _____________________________________
    _____________________________________

  15. تشکرها از این نوشته :


  16. #8
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    با سلام
    دوست عزيز برنامه رو به اين صورت تغيير بديد ببينيد جواب ميده؟
    [PHP]s=0;
    if(PINA.2==0)
    {
    s++;
    while(!PINA.2)
    }
    if (PINA.0==0 && s==1)
    { i++;
    }[/PHP]
    ویرایش توسط sadmonew : 06-01-2012 در ساعت 17:16
    _____________________________________
    _____________________________________

  17. کاربران : 2 تشکر کرده اند از شما sadmonew برای ارسال این پست سودمند:


  18. #9
    کاربر فعال saeidhp آواتار ها
    تاریخ عضویت
    Apr 2011
    نام
    سعید
    نوشته ها
    155
    تشکر
    665
    تشکر شده 76 بار در 44 پست

    پیش فرض

    ممنون از شما من برنامه رو به شکل زیر تغییر دادم و جواب داد فقط میخوام زمانی که m=1 میشه sal1 توی lcd خاموش و روشن بشه وقتی m=2 میشه sal2 خاموش و روشن بشه (در هر ثانیه 1 بار خاموش و روشن )

    فقط اینکارو میخوام با وقفه ها انجام بدم نه با delay

    الان 2 روزه که دارم بهش ور میرم ولی ره نیافتاده ممنون میشم راهنمایی بفرمایید


    کد:
        while (1)
          { lcd_gotoxy(10,0);
             lcd_puts(saeid);
            if (!PINA.0&& m==1)
            {
            sal1++;
            }
            
            if (!PINA.1 && m==2)
            {sal2++;
             } 
             if (!PINA.2){delay_ms(25);
             m++;
             if (m==3)m=0; 
             while(!PINA.2){}
               }
             lcd_screen();

  19. #10
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    با سلام
    دوست عزيز اگه كل برنامه اي كه نوشتي رو بذاري بهتر ميتونم كمك كنم.
    شما خودتون قسمت وقفه رو باهاش كار كردين؟
    يا اگه نميخواين كل برنامتون رو بذاريد اون قسمتي كه مربوط به وقفه ميشه رو اينجا قرار بديد.
    _____________________________________
    _____________________________________

  20. تشکرها از این نوشته :


  21. #11
    کاربر فعال saeidhp آواتار ها
    تاریخ عضویت
    Apr 2011
    نام
    سعید
    نوشته ها
    155
    تشکر
    665
    تشکر شده 76 بار در 44 پست

    پیش فرض

    سلام

    فایل پروتئوس + کدویژن رو قرار دادم

    توی پروتئوس به ترتیب هست که در ابتدا 2 کلید بالا کار نمیکنه (a.0 , a.1) بعد از زدن کلید سوم (a.2) متن

    سال اول خاموش میشه ولی روشن نمیشه اما با زدن کلید a.0 به مقدار سال اضافه میشه

    بازدن مجدد کلید a.2 مقدار سال دوم اضافه میشه
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: zip lcd.zip (89.9 کیلو بایت, 19 نمايش)
    ویرایش توسط saeidhp : 06-01-2012 در ساعت 18:40 دلیل: تصحیح متن

  22. تشکرها از این نوشته :


  23. #12
    کاربر فعال saeidhp آواتار ها
    تاریخ عضویت
    Apr 2011
    نام
    سعید
    نوشته ها
    155
    تشکر
    665
    تشکر شده 76 بار در 44 پست

    پیش فرض

    سلام

    فایل پروتئوس + کدویژن رو قرار دادم

    توی پروتئوس به این ترتیب هست که در ابتدا 2 کلید بالا کار نمیکنه (a.0 , a.1) بعد از زدن کلید سوم (a.2) متن

    سال اول خاموش میشه ولی روشن نمیشه اما با زدن کلید a.0 به مقدار سال اضافه میشه

    بازدن مجدد کلید a.2 مقدار سال دوم اضافه میشه
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: zip lcd.zip (89.9 کیلو بایت, 15 نمايش)
    ویرایش توسط saeidhp : 06-01-2012 در ساعت 18:39 دلیل: تصحیح متن

  24. تشکرها از این نوشته :


  25. #13
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    با سلام
    دوست عزيز برنامه رو تغيير دادم. البته بدون وقفه انجام دادم.
    با كليد متصل شده به A.0 ميتونيد مشخص كنيد كه كدوم عدد(sal1 يا sal2) رو ميخوايد افزايش بديد با زدن اين دكمه، علامت">" جلوي sal ظاهر ميشه.
    با دكمه هاي A.1 عدد مربوط به sal1 افزايش و با زدن دكمه A.2 عدد مربوط به sal2 افزايش پيدا ميكنه.
    به هر صورت در خدمتيم.

    _______________________
    برنامه نويسي، الكترونيك(PE)
    _______________________
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: zip lcd.zip (92.0 کیلو بایت, 16 نمايش)
    _____________________________________
    _____________________________________

  26. کاربران : 2 تشکر کرده اند از شما sadmonew برای ارسال این پست سودمند:


  27. #14
    کاربر فعال saeidhp آواتار ها
    تاریخ عضویت
    Apr 2011
    نام
    سعید
    نوشته ها
    155
    تشکر
    665
    تشکر شده 76 بار در 44 پست

    پیش فرض

    سلام

    ممنون از شما

    ولی من میخوام اینکه هم کار با وقفه ها رو یاد بگیرم هم اینکه موقع ویرایش سال چشمک بزنه

  28. #15
    کاربر فعال saeidhp آواتار ها
    تاریخ عضویت
    Apr 2011
    نام
    سعید
    نوشته ها
    155
    تشکر
    665
    تشکر شده 76 بار در 44 پست

    پیش فرض

    دوستان کسی یه نمونه برنامه از وقفه ها داره که مثلا یه led خاموش و روشن بکنه ؟

    هنوز نتونستم راه بندازم

  29. #16
    کاربر فعال saeidhp آواتار ها
    تاریخ عضویت
    Apr 2011
    نام
    سعید
    نوشته ها
    155
    تشکر
    665
    تشکر شده 76 بار در 44 پست

    پیش فرض

    دوستان کسی یه نمونه برنامه از وقفه ها داره که مثلا یه led خاموش و روشن بکنه ؟

    هنوز نتونستم راه بندازم

  30. #17
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    با سلام
    دوست عزيز يه پروژه پيدا كردم فكر كنم به اون چيزي كه شما ميخواين يكم شبيه. از وقفه استفاده كرده و تو پروتئوس هم شبيه سازي شده. تو محيط WinAVR به زبان C نوشته شده.

    _______________________
    برنامه نويسي، الكترونيك(PE)
    _______________________
    فايل هاي پيوست شده فايل هاي پيوست شده
    _____________________________________
    _____________________________________

  31. کاربران : 2 تشکر کرده اند از شما sadmonew برای ارسال این پست سودمند:


  32. #18
    کاربر فعال saeidhp آواتار ها
    تاریخ عضویت
    Apr 2011
    نام
    سعید
    نوشته ها
    155
    تشکر
    665
    تشکر شده 76 بار در 44 پست

    پیش فرض

    سلام و تشکر از شما

    ببخشید خیلی اذیتتون کردم

    من فقط با کد ویژن کار کردم و مشکل عمده من تنظیم رجیستر ها و فعال سازی تایمر با فعال کردن کلید هست

    از این برنامه ای که دادید چیزی سر در نیاوردم !

  33. #19
    کاربر فعال saeidhp آواتار ها
    تاریخ عضویت
    Apr 2011
    نام
    سعید
    نوشته ها
    155
    تشکر
    665
    تشکر شده 76 بار در 44 پست

    پیش فرض

    من یه مقدار از برنامه رو نوشتم اما هنوز اشکال داره فکر میکنم فرکانسها بدرستی ست نشده

    یه تابع delay به شکل زیر نوشته شد


    کد:
    void delay()
        {
        
        TCCR0=0B00000101; // Timer Clock = CLK/1024
        while(!TIFR&0x01); // Wait Until Overflow
        TIFR=TIFR|0B00000001; // Clear TOV0
        TCCR0=0x00; // Stop Timer0
        }



    کد:
     TCCR0=0x00;
      TCNT0=0x00;

    و در شرط زیر از تابع delay استفاده کردم


    کد:
     if (!PINA.2)
             {
             delay_ms(25);
             m++;
             if (m==3)m=0;
              if(m==1)
              {  
              lcd_gotoxy(0,0);
              lcd_puts ("sale=1390");
              delay();
              lcd_gotoxy(0,0);
              lcd_puts ("sale=    ");   
              lcd_clear();
              }
    من الان انتظار دارم با زدن کلید 1390 شروع به چشمک زدن بکنه ولی فقط خاموش میشه
    ویرایش توسط saeidhp : 08-01-2012 در ساعت 20:23

  34. #20
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    با سلام
    لطفا همين برنامه كه جديدا نوشتيد رو به طور كامل با فايلاي پروژه اينجا بذاريد ببينيم مشكل دقيقا چيه؟
    تو پروتئوس تست كردين يا به صورت عملي؟
    اگه با پروتئوس تست كردين لطفا فايل پروتئوس رو هم همراه برنامه بذاريد.
    _____________________________________
    _____________________________________

  35. تشکرها از این نوشته :


صفحه 1 از 2 12 آخرینآخرین

موضوعات مشابه

  1. جستجوی مقاله آموزشی avr ( گفتگوی دو دوست )
    توسط mapmap در انجمن پرسش و پاسخ (نرم افزارهای تخصصی)
    پاسخ: 5
    آخرين نوشته: 28-07-2013, 04:57
  2. پاسخ: 1
    آخرين نوشته: 11-05-2013, 00:12
  3. حل مشکل نیامدن منوی بوت برای نصب ویندوز روی برد s3c6410
    توسط shahrivar88 در انجمن میکرو کنترلر های 32 بیتی(arm)
    پاسخ: 1
    آخرين نوشته: 03-11-2012, 23:56

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •