اطلاعیه

Collapse
No announcement yet.

سوال در مورد اجرا نشدن مکرر برنامه

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

    سوال در مورد اجرا نشدن مکرر برنامه

    با سلام و خسته نباشید به همه ی دوستان من تازه با کدویژن کد می نویسم الان هم کد زیر رو نشوتم ولی نمیدوم چرا بعد از اینکه دوبار اجرا شد یعنی حلقه یfor اولی و دومی اجرا شد بعد بلا فاصله برنامه دوباره اجرا نمیشه و پس از چند دقیقه اجرا می شه. البته وقتی حلفه for یه دونه است دائم برنامه تکرار میشه و هیچ اشکالی نداره.
    کد:
    #include<mega16.h>
    #include<delay.h>
    void main() {
    unsigned char i;
    char digits [16]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,
    0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71};
    DDRA=0XFF;
    DDRB=0X00;
    
    while(1){
    for(i=0;i<17;i++){
    PORTA=digits[i];
    delay_ms(200); 
    }
    for(i=17;i>=0;i--){
    PORTA=digits[i];
    delay_ms(200);  
    }
    }
    }
    میکرو atmega16 و با کلاک 4000000 می باشد.
    ممنون میشم زود پاسخ بدید.

    #2
    پاسخ : سوال در مورد اجرا نشدن مکرر برنامه

    سلام
    من مانده ام که چرا می گویی بعد چند ثانیه دوباره اجرا می شود
    چون از نظر من اصلا نباید اجرا شود!!!!
    چون که شرط for دومی تمامی نداره متغیر i کمتر از صفر که نمی شود حداقلش صفره خب شما هم شرط for نوشتی بزرگتر یا مساوی صفر!!!!
    پس شرط for باید همش کار کند.
    دکتر چمران در 1311 در تهران متولد شد
    وي در زمان اقامت در آمريکا انجمن اسلامي آمريکا را تأسيس کرد که منجر به قطع بورسيه وي توسط شاه شد.
    او با اينکه يکي از دانشمندان مطرح آمريکا به حساب مي آمد بدون توجه به مدرک به مصر رفت و آموزش نظامي ديد.

    دیدگاه


      #3
      پاسخ : سوال در مورد اجرا نشدن مکرر برنامه

      نوشته اصلی توسط 011
      سلام
      من مانده ام که چرا می گویی بعد چند ثانیه دوباره اجرا می شود
      چون از نظر من اصلا نباید اجرا شود!!!!
      چون که شرط for دومی تمامی نداره متغیر i کمتر از صفر که نمی شود حداقلش صفره خب شما هم شرط for نوشتی بزرگتر یا مساوی صفر!!!!
      پس شرط for باید همش کار کند.
      سلام ممنون از جوابت ولی من unsigned char رو به char تغییر دادم وقتی تو پروتئوس کلید play رو زدم د حلقه بدون مکث اجرا شدن ولی بعد 7 سکمنت خاموش شد و بعد از 2 دقیقه و 40 ثانیه دوباره حلقه اول اجرا شد و بعد با مکث یک دقیقه ای حلقه ی دوم رو اجرا کرد. اشکال چیه؟

      دیدگاه


        #4
        پاسخ : سوال در مورد اجرا نشدن مکرر برنامه

        کدت مشکل داره.
        اینو امتحان کن :
        کد:
        #include<mega16.h>
        #include<delay.h>
        void main() 
        {
          unsigned char i;
          char digits [16]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71};
          DDRA=0XFF;
          DDRB=0X00;
          while(1)
          {
            for(i=0;i<16;i++)
            {
              PORTA=digits[i];
              delay_ms(200); 
            }
            for(i=0;i<16;i++)
            {
              PORTA=digits[15-i];
              delay_ms(200); 
            }
          }
        }

        دیدگاه


          #5
          پاسخ : سوال در مورد اجرا نشدن مکرر برنامه

          نوشته اصلی توسط امیر . م
          کدت مشکل داره.
          اینو امتحان کن :
          کد:
          #include<mega16.h>
          #include<delay.h>
          void main() 
          {
            unsigned char i;
            char digits [16]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71};
            DDRA=0XFF;
            DDRB=0X00;
            while(1)
            {
              for(i=0;i<16;i++)
              {
                PORTA=digits[i];
                delay_ms(200); 
              }
              for(i=0;i<16;i++)
              {
                PORTA=digits[15-i];
                delay_ms(200); 
              }
            }
          }
          میشه یه ذره توضیح بدید ؟

          دیدگاه


            #6
            پاسخ : سوال در مورد اجرا نشدن مکرر برنامه

            شما تو کدت اومده بودی از ایندکس 17 تو لوپ دوم شروع کرده بودی به خوندن و 18 بار میخواستی از ماتریسی که 16 تا عضو داره بخونی.

            دیدگاه

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