اطلاعیه

Collapse
No announcement yet.

سوال در برنامه رقص نور بسیار ساده..؟؟؟

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

    سوال در برنامه رقص نور بسیار ساده..؟؟؟

    سلام خدمت دوستان
    من تو avr یه تازه کار به معنای واقعی ام.. این برنامه رو هم به عنوان یکی از اولین برنامه هام نوشتم
    قصدم از این برنامه ایجاد یه رقص نور بسیار ساده روی پورت A در میکرو atmega32 هستش..
    متن برنامه:
    #include <mega32.h>
    #include <delay.h>
    void main()
    {int i;
    while(1)
    {
    for(i=0;i<=4;i++)
    {
    PORTA.i=1;
    delay_ms(350);
    }
    for(i=0;i<=4;i++)
    {
    PORTA.i=0;
    delay_ms(350);
    }
    }
    }

    ولی وقتی کامپایل میکنم error میده the bit selector must be a constant
    میگه باید سلکتور پورت ثابت باشه ولی خوب در هر حلقه i ثابت هستش.. اگه بخوام تک تک پورت ها رو معرفی کنم برنامه حجمش بالا میره..
    راه دیگه ای هست؟؟ اسن error از کجا میاد؟؟

    با تشکر
    به رویاهات فکر کن!!

    #2
    پاسخ : سوال در برنامه رقص نور بسیار ساده..؟؟؟

    باید مقدار i را بر روی پورت بریزی
    مثلا porta=i حالا اگر مقدار i را زیاد کنی هر بار یک پین فعال است

    دیدگاه


      #3
      پاسخ : سوال در برنامه رقص نور بسیار ساده..؟؟؟

      سلام
      1_خطا ی داده شده مربوط به دستور PORTB.i است که این دستور در کد ویژن تعریف نشده
      2_برنامه زیر همان رقص نور شماست
      for(i=2;i<=16;i=i<<1)
      {
      k=i-1
      PORTA=k;
      delay_ms(350);
      }
      for(i=0,k=14;i<4;k=k<<1,i++)
      {
      PORTA=k;
      delay_ms(350);
      }
      **/nsm\**

      دیدگاه


        #4
        پاسخ : سوال در برنامه رقص نور بسیار ساده..؟؟؟

        با تشکر از شما
        یعنی منظورتون اینه که به این شکل باشه؟..
        for(i=0;i<=3;i+=)
        PRTA=i;
        ؟؟؟؟
        درست فهمیدم؟
        به رویاهات فکر کن!!

        دیدگاه


          #5
          پاسخ : سوال در برنامه رقص نور بسیار ساده..؟؟؟

          سلام
          نه همونطوری که برات فرستادم
          :agree:
          **/nsm\**

          دیدگاه


            #6
            پاسخ : سوال در برنامه رقص نور بسیار ساده..؟؟؟

            سلام
            خوب اگه این برنامه ای رو که فرستادی یه توضیح بدی ممنون میشم
            اصلا متغیر k برای چیه؟؟ یا نقاط ابتدا و آخر حلقه چرا اونا انتخاب شدن؟؟
            یا چرا تو حلقه دوم بین دو متغیر k و i هیچ ارتباطی برقرار نشده؟؟؟
            شرمنده اگه سوالام خیلی ابتداییه ، همونطور ک گفتم من یه تازه کارم..

            مرسی
            به رویاهات فکر کن!!

            دیدگاه


              #7
              پاسخ : سوال در برنامه رقص نور بسیار ساده..؟؟؟

              سلام

              مراحل نوشتن برنامه به صورت زیر است
              1_اول مراحل وترتیب روشن بودن یا خاموش شدن led ها را مشخص میکنیم
              2_اعدادی که در هر مرحله باید به پورت بدهیم را بدست میاوریم
              3_اگر اعداد رابطه منطقی با هم داشت آن اعداد را به صورت فرمول بدست میآوریم اگر رابطه منطقی با هم نداشت باید اعداد را در یک آرایه ذخیره کنیم
              که در برنامه شما اعداد رابطه منطقی دارند 1,3,7,15 و 14,28,56,112
              4_ در نهایت حلقه for مناسب را برای هر مرحله مینویسیم

              برای روشن شدن led ها طبق برنامه شما فرمول k=i-1 بدست آمد که در عکس کاملا گویا است
              و برای خاموش شدن led ها هم اگر عدد 14 را در بار اول در for قرار دهیم و بعد آن عدد را در 2 ضرب کنیم(به راست شیفت دهیم) Led ها یکی یکی خاموش میشوند
              **/nsm\**

              دیدگاه


                #8
                پاسخ : سوال در برنامه رقص نور بسیار ساده..؟؟؟

                سلام
                این راهم یادم رفت بگم در مرحله خاموش کردن Led ها چون فقط 4 Led را به میکرو وصل کرده اید led ها به ترتیب خاموش می شوند در عکس ارسالی عملا 4 led سمت چپ را ندید بگیرید
                **/nsm\**

                دیدگاه


                  #9
                  پاسخ : سوال در برنامه رقص نور بسیار ساده..؟؟؟

                  سلام
                  حالا متوجه شدم، من بار اول اصلا نفهمیدم از کد های bcd استفاده کردین .. ولی الان گویاست
                  مرسی از شما
                  به رویاهات فکر کن!!

                  دیدگاه

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