اطلاعیه

Collapse
No announcement yet.

نحوه الویت بندی ورودی در یک پروژه

Collapse
این موضوع بسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    نحوه الویت بندی ورودی در یک پروژه

    با سلام خدمت دوستان عزیز
    جهت انجام پروژه ا ی با میکرو PIC 16f877A با مشکل الویت بندی مواجه شده ام . شکل کلی پروژه به شرح زیر می باشد :
    8 مخزن داریم که در صورت خالی شدن هر کدام ، سیگنالی به بلوک کنترلی ما ارسال می کند . در این پروژه الویت بسیار مهم می باشد ، یعنی ممکن است در فاصله چند ثانیه تعدادی از مخزن ها سیگنالی ارسال کنند . در این شرایط بلوک کنترلی باید مخزنی را که ابتدا سیگنال فرستاده را تشخیص دهد و در الویت اول به آن مخزن رسیدگی کند . پس از رسیدگی به مخزن اول سراغ الویت دوم رفته و به ترتیب الی آخر به الویت ها رسیدگی کند . حالتی که دو مخزن یا بیشتر با هم سیگنال دهند نیز وجود دارد ، در این حالت بلوک کنترلی می بایست بر اساس شماره 1 تا 8 مخازن اقدام به رسیدگی به مخازن بر اساس شماره مخزن کمتر کند . از اساتید خواهش می کنم در صورتی که با نحوه برنامه نویسی این پروژه به زبان PBP آشنایی دارند منو راهنمایی کنند یا حداقل فلوچارتی از روش اجرای این کار به من نشان دهند . :question:
    با تشکر

    #2
    پاسخ : نحوه الویت بندی ورودی در یک پروژه

    سلام
    من بیسیک بلد نیستم اما تو C
    اگه 8تامخزنتو به پورت PINx وصل کنی به صورتی که مخزن یک به PINx.0 و . . . و مخزن هشت به PINx.7 وصل باشه و فرمان هات Active High باشه میتونی به صورت زیر عمل کنی :



    int8 Tanks,Temp=0;
    int8 Buffer=0x01; //00000001
    //---------------------------------
    void Cheking(int8 Tank)
    {
    //your operations
    }
    //-------------------------------------
    while(True)
    {
    Buffer=0x01;
    Tanks=Input(Pinx);

    for(i=0 ; i<8 ; i++)
    {
    Temp = Tanks & Buffer;
    if(Temp>0) Cheking(i);
    Buffer=Buffer<<1;
    }
    }


    حالا تو تابع Cheking با توجه به شماره تانکری که دریافت میکنه عملیات مورد نظرتو انجام بده
    زمان تنها واحد حقیقی اندازه گیریه
    زمان وجود ماده رو اثبات میکنه
    بدون زمان هیچکدوم ما وجود نخواهیم داشت
    زمان یکتاست

    دیدگاه

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