اطلاعیه

Collapse
No announcement yet.

مفهوم دو خط به زبان c

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

    مفهوم دو خط به زبان c

    سلام
    اگر ممکنه یکی بگه دستورات این دو خط کد چطوری اجرا میشه،اگر ممکنه بند به بند توضیح بدید
    خیلی خیلی ممنون
    کد:
    while(!(TIFR & 0x02));
        TIFR |= 0x02;
    اینم کد کامل برنامه در صورت نیاز
    کد:
    #include <mega16.h>
    
    
      void timer0_1ms(){ 
        TCCR0=0x03; // Clock value: 125.000 kHz 
        TCNT0=130; //255-125=130
        while(!(TIFR & 0x02));
        TIFR |= 0x02;
      }
       
    
      void main(void){ 
        DDRA=0xff; 
        PORTA=0; 
        TCNT0=0x00; 
        OCR0=0x00; 
    
        while (1){ 
          timer0_1ms(); 
          PORTA.0=~PORTA.0; 
        } 
      }
    [آموزشی] کنترل رله با پیامک توسط sim800l
    [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن
    [آموزشی] مدار عملی اتصال میکروفن خازنی به میکروکنترلر
    [آموزشی] آموزش نحوه راه اندازی میکروهای fmd
    صفحه اینستاگرام : ecdco_ir


    #2
    پاسخ : مفهوم دو خط به زبان c

    سلام.
    خط اول خب صبر میکنه تا زمانی که OCR با TCNT برابر بشه.
    خط دوم توی Flag اش 1 مینویسه تا پاک بشه.
    http://www.eca.ir/forum2/index.php?topic=108455.msg777842#msg777842

    دیدگاه


      #3
      پاسخ : مفهوم دو خط به زبان c

      نوشته اصلی توسط سامان تقی پور
      سلام.
      خط اول خب صبر میکنه تا زمانی که OCR با TCNT برابر بشه.
      خط دوم توی Flag اش 1 مینویسه تا پاک بشه.
      ممنون ولی من بازم متوجه نشدم اصلآ تو این مد مگه ocr به کار رفته؟
      درضمن من تازه برنامه نویسی c رو شروع کردم اگر ممکنه بگید برای while هر کدوم از علامت های ! و & چیکار میکنند
      درضمن رجیستر tifr باید 8 بیتی باشه دیگه
      تا جایی که من خودم تو کتابا خوندم عبارت TIFR & 0x02 زمانی که فلگ 1 باشه خروجی باید به صورت 0x02 باشه و اگر فلگ صفر باشه خروجی باید به صورت 0x00 باشه درسته؟
      حالا این علامت ! قبلش یعنی چی؟
      و وقتی اینا کلآ تو حلقه while قرار میگیرند چه اتفاقی میوفته؟
      [آموزشی] کنترل رله با پیامک توسط sim800l
      [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن
      [آموزشی] مدار عملی اتصال میکروفن خازنی به میکروکنترلر
      [آموزشی] آموزش نحوه راه اندازی میکروهای fmd
      صفحه اینستاگرام : ecdco_ir

      دیدگاه


        #4
        پاسخ : مفهوم دو خط به زبان c

        نوشته اصلی توسط reza babatabar
        ممنون ولی من بازم متوجه نشدم اصلآ تو این مد مگه ocr به کار رفته؟
        بیت شماره 1 از رجیستر TIFR برای مقایسه هست دیگه. OCF0
        شما نوشتین:
        [code=c]
        TIFR|=0x02;
        [/code]
        یا
        [code=c]
        TIFR|=0b00000010;
        [/code]

        نوشته اصلی توسط reza babatabar
        درضمن من تازه برنامه نویسی c رو شروع کردم اگر ممکنه بگید برای while هر کدوم از علامت های ! و & چیکار میکنند
        &: برای AND کردن
        !: یعنی NOT

        نوشته اصلی توسط reza babatabar
        درضمن رجیستر tifr باید 8 بیتی باشه دیگه
        آره

        نوشته اصلی توسط reza babatabar
        تا جایی که من خودم تو کتابا خوندم عبارت TIFR & 0x02 زمانی که فلگ 1 باشه خروجی باید به صورت 0x02 باشه و اگر فلگ صفر باشه خروجی باید به صورت 0x00 باشه درسته؟
        حالا این علامت ! قبلش یعنی چی؟
        و وقتی اینا کلآ تو حلقه while قرار میگیرند چه اتفاقی میوفته؟
        دستور
        [code=c]
        while(.......);
        [/code]
        یعنی صبر کن تا زمانی که شرط داخل پرانتز درسته.
        ! هم که یعنی NOT
        حالا یه بار مراحل رو انجام بده متوجه میشی.
        اول TIFR & 0x02 رو برابر با 0 فرض کن ببین چی میشه
        بعدش برابر با 1
        http://www.eca.ir/forum2/index.php?topic=108455.msg777842#msg777842

        دیدگاه


          #5
          پاسخ : مفهوم دو خط به زبان c

          ممنون ولی ما که عبارت شرطی داخل while نداریم که بخواد بررسی بشه!!!
          بعدش
          کد:
          while(2)
          عملکردش چطوره؟
          عبارت
          کد:
          while(!(0))
          یعنی چی؟
          بازم ممنون
          [آموزشی] کنترل رله با پیامک توسط sim800l
          [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن
          [آموزشی] مدار عملی اتصال میکروفن خازنی به میکروکنترلر
          [آموزشی] آموزش نحوه راه اندازی میکروهای fmd
          صفحه اینستاگرام : ecdco_ir

          دیدگاه


            #6
            پاسخ : مفهوم دو خط به زبان c

            [code=c]
            while(!(0)) = while(1)
            [/code]
            یعنی
            [code=c]
            !(0) = 1
            [/code]
            اگه توی while عدد 0 باشه، یعنی شرط نادرست
            [code=c]
            while(0);
            [/code]
            یعنی صبر نمیکنه
            ولی
            [code=c]
            while(2);
            [/code]
            یعنی شرط داخل حلقه درسته و صبر میکنه تا زمانی که شرط داخل حلقه درست باشه.
            http://www.eca.ir/forum2/index.php?topic=108455.msg777842#msg777842

            دیدگاه


              #7
              پاسخ : مفهوم دو خط به زبان c

              پس یعنی در اینجور مواقع فقط اگر داخل while برابر صفر بشه یعنی شرط درست نیست و برای بقیه موارد یعنی شرط درسته؟
              درضمن دو بیت اول رجیستر tifr که مشخصه 6 بیت دیگه چیه؟خالیه؟
              [آموزشی] کنترل رله با پیامک توسط sim800l
              [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن
              [آموزشی] مدار عملی اتصال میکروفن خازنی به میکروکنترلر
              [آموزشی] آموزش نحوه راه اندازی میکروهای fmd
              صفحه اینستاگرام : ecdco_ir

              دیدگاه


                #8
                پاسخ : مفهوم دو خط به زبان c

                نوشته اصلی توسط reza babatabar
                پس یعنی در اینجور مواقع فقط اگر داخل while برابر صفر بشه یعنی شرط درست نیست و برای بقیه موارد یعنی شرط درسته؟
                آره
                نوشته اصلی توسط reza babatabar
                درضمن دو بیت اول رجیستر tifr که مشخصه 6 بیت دیگه چیه؟خالیه؟
                اونا اگه به عدداش دقت کنی برای Overflow1 یا Overflow2 و ... هست. یعنی کاربردش توی تایمر کانتر 1 و 2 هست.
                http://www.eca.ir/forum2/index.php?topic=108455.msg777842#msg777842

                دیدگاه


                  #9
                  پاسخ : مفهوم دو خط به زبان c

                  ممنون متوجه شدم
                  حالا برای خط دوم که تو فلگش 1 میریزه تا پاک بشه یعنی چی؟
                  فلگ با سرریز شدن 1 میشه دیگه درسته؟
                  حالا از این به بعدش چه اتفاقی میوفته؟
                  [آموزشی] کنترل رله با پیامک توسط sim800l
                  [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن
                  [آموزشی] مدار عملی اتصال میکروفن خازنی به میکروکنترلر
                  [آموزشی] آموزش نحوه راه اندازی میکروهای fmd
                  صفحه اینستاگرام : ecdco_ir

                  دیدگاه


                    #10
                    پاسخ : مفهوم دو خط به زبان c

                    نوشته اصلی توسط reza babatabar
                    ممنون متوجه شدم
                    حالا برای خط دوم که تو فلگش 1 میریزه تا پاک بشه یعنی چی؟
                    فلگ با سرریز شدن 1 میشه دیگه درسته؟
                    حالا از این به بعدش چه اتفاقی میوفته؟
                    بعضی از flag ها اگه 1 باشن و دوباره توشون 1 بنویسی، پاک میشن (جلل خالق oo
                    یعنی 0 اش میکنیم و منتظر میمونیم تا سرریز بشه که باعث میشه 1 بشه.
                    http://www.eca.ir/forum2/index.php?topic=108455.msg777842#msg777842

                    دیدگاه

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