اطلاعیه

Collapse
No announcement yet.

کمک در مورد ذخیره و نمایش اطلاعات

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

    کمک در مورد ذخیره و نمایش اطلاعات

    سلام به همه اساتید محترم
    من کد زیر رو نوشتم و می خوام مقدار 2 تا adc و 4 تا کلید رو داخل یک متغیر c ذخیره کنم.
    همه جاش کار می کنه به جز اظافه کردن 4 مقدار آخر به مقدار نهایی که c هستش و داخل if قرار دادم.
    هم یک با از متغیر که x تعزیف کردم و داخل ifها مقدارش رو تغیین کردم بعد به c اظافه کردم هم مستقیم مقدار مورد نظرم رو به c اظافه کردم ولی هیچ اتفاقی نیفتاد.
    کسی میتونه کمکم کنه بگه مشکل از کجاست ؟؟؟
    ممنون از همه




    while (1)
    {

    int a,b,c,x;
    char buffer[16];

    a = read_adc(0);
    b = read_adc(1);

    a = a/4;
    b = b/4;
    c = ( a << 6 ) + b;
    c = ( c << 4 );

    x = 0;

    if (PORTD.0 == 1) // Right
    {
    c = c + 1;
    // x = x + 1;
    }


    if (PORTD.1 == 1) // Left
    {
    c = c + 2;
    // x = x + 2;
    }

    if (PORTD.2 == 1) // Flasher
    {
    c = c + 4;
    // x = x + 4;
    }

    if (PORTD.3 == 1) // All Lights
    {
    c = c + 8;
    // x = x + 8;
    }

    // c = c + x;


    lcd_clear();
    lcd_gotoxy(0,0);
    sprintf(buffer,"ADC=%d",c);
    lcd_puts(buffer);

    delay_ms(50);


    }

    #2
    پاسخ : کمک در مورد ذخیره و نمایش اطلاعات

    منظور از اینکه هیچ اتفاقی نیفتاد چیه؟؟؟؟؟
    یعنی هیچی نشون نداد؟؟؟؟؟
    ... و (بدانید) گرفتن تصمیمهاى محکم (براى رسیدن به اهداف بزرگ) با خوش گذرانى و سفرهآ‌هاى رنگین سازگار نیست و چه بسیار که خواب شبانه تصمیمهاى محکم روز را از میان برده و تاریکیآ‌ها، خاطره همتآ‌هاى بلند را از یادها محو کرده است. (نهجآ‌البلاغه، خطبه211)

    امام علی (ع):کسی که به وقت یاری رهبرش در خواب باشد، با لگد دشمنش بیدار می شود (غررالحکم،ص 422)

    دیدگاه


      #3
      پاسخ : کمک در مورد ذخیره و نمایش اطلاعات

      دو تا adc که با شیفت دادن ذخیره کردم تو c مشکلی ندارن و با تغییر adc مقدارش عوض میشه ولی اون 4 تا دیتای آخر که داخل if ها به c اظافه می کنم اصلا اظافه نمیشه، اصلا انگار که وجود نداره، دیگه نمی دونم چیکار کنم :angry:

      دیدگاه


        #4
        پاسخ : کمک در مورد ذخیره و نمایش اطلاعات

        نوشته اصلی توسط AliShrz.13
        دو تا adc که با شیفت دادن ذخیره کردم تو c مشکلی ندارن و با تغییر adc مقدارش عوض میشه ولی اون 4 تا دیتای آخر که داخل if ها به c اظافه می کنم اصلا اظافه نمیشه، اصلا انگار که وجود نداره، دیگه نمی دونم چیکار کنم :angry:
        یعنی اگر کلیدی رو فشار بدی 4 بیت اول c هیچ تغییری نمیکنه؟؟؟؟؟؟
        نکته ای که در برنامه است هست اینه که وقتی کلید رو نگه داری همینطور c رو اضافه میکنه و سازوکاری برای صفر کردن 4 بیت اول، اگر کلید فشار داده نشد در نظر نگرفتی
        دوم اینکه باید بین هر کلید یک تاخیر قرار بدی یا به اصطلاح debounce کنی.
        ... و (بدانید) گرفتن تصمیمهاى محکم (براى رسیدن به اهداف بزرگ) با خوش گذرانى و سفرهآ‌هاى رنگین سازگار نیست و چه بسیار که خواب شبانه تصمیمهاى محکم روز را از میان برده و تاریکیآ‌ها، خاطره همتآ‌هاى بلند را از یادها محو کرده است. (نهجآ‌البلاغه، خطبه211)

        امام علی (ع):کسی که به وقت یاری رهبرش در خواب باشد، با لگد دشمنش بیدار می شود (غررالحکم،ص 422)

        دیدگاه


          #5
          پاسخ : کمک در مورد ذخیره و نمایش اطلاعات

          یعنی اگر کلیدی رو فشار بدی 4 بیت اول c هیچ تغییری نمیکنه؟؟؟؟؟؟
          نه متاسفانه.
          باز هم برنامه رو تغییر دادم و 4 تا متغییر تعریف کردم داخل if ها قرار دادم به این صورت که اگر شرط if برابر شد با 1 مقدار متغیر مثلا z رو 1 بکنه و اگه نشد z = 0 بشه، بعدش با مقدار c جمع بشه ولی باز هم نشد. از تاخیر هم استفاده کردم ولی باز فایده نداشت.

          دیدگاه

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