NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 4091 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 5 از 5

موضوع: تحلیل برنامه

  1. #1
    کاربر علاقه مند siavash7 آواتار ها
    تاریخ عضویت
    Jan 2013
    نام
    سیاوش
    نوشته ها
    70
    تشکر
    43
    تشکر شده 7 بار در 6 پست

    Icon16 تحلیل برنامه

    سلام . یه سوال داشتم ازتون . تو مجله pmm9 یه برنامه اومده :
    #include < LPC23xx.h >

    int main (void)
    {
    SCS = 0x30; // Enable main oscillator &
    oscillator range select
    PLLCON = 0; // Disable PLL & Disconnect
    PLL unit
    PLLFEED = 0xAA; // Write feed sequence
    PLLFEED = 0x55; // Write feed sequence
    while (!(SCS&0x40)); // Wait until main oscillator is stable (OSCSTAT
    Bit)
    CLKSRCSEL = 1; // Select main oscillator for PLL input
    source
    PLLCFG = 0xa; // MSEL=10 & NSEL=0
    PLLFEED = 0xAA; // Write feed sequence
    PLLFEED = 0x55; // Write feed sequence
    PLLCON = 1; // Enable PLL & Disconnect PLL
    PLLFEED = 0xAA; // Write feed sequence
    PLLFEED = 0x55; // Write feed sequence
    CCLKCFG = 11; // CPU clock select is : 44MHz
    USBCLKCFG = 11; // USB clock select is : 48MHz
    PCLKSEL0 = 0; // Peripheral select is : 11MHz
    PCLKSEL1 = 0; // Peripheral select is : 11MHz
    while (PLLSTAT&0x04000000); // wait until PLL is locked
    PLLCON = PLLCON|2; // Connect PLL unit
    PLLFEED = 0xAA; // Write feed sequence
    PLLFEED = 0x55; // Write feed sequence
    }
    میخواستم اگه زحمتی نیست خط نهم برنامه ,همون شرط while رو برام تحلیل کنید . البته خودش نوشته while چیکار میکنه ولی من میخوام بدونم اون علامت ها یعنی چی(کاربرد نقیض و and) ؟
    scs همونطور که میدونید یک رجیستر 32 بیت هست .
    مرسی
    ویرایش توسط siavash7 : 12-02-2013 در ساعت 16:44

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  3. #2
    مدیر انجمن Aghaeifar آواتار ها
    تاریخ عضویت
    Feb 2010
    نام
    علی آقائی فر
    نوشته ها
    751
    تشکر
    552
    تشکر شده 975 بار در 440 پست

    پیش فرض

    سلام.
    دیتاشیت رو نگاه نکردم ولی اگر قبول کنیم کدش درسته معنیش اینه: اگر اسیلاتور به حالت پایدار برسه، بیت 6 ام در رجیستر scs مقدارش 1 میشه و تا زمانی که پایدار نیست مقدارش صفر است. این شرط چک می کنه تا زمانی که اسیلاتور پایدار نشده و این بیت صفر است در این حلقه گیر کنه و جلوتر نره.
    ما در انتظار رویت خورشیدیم ...

    اللهم عجل لولیک الفرج

  4. کاربران : 2 تشکر کرده اند از شما Aghaeifar برای ارسال این پست سودمند:


  5. #3
    کاربر علاقه مند siavash7 آواتار ها
    تاریخ عضویت
    Jan 2013
    نام
    سیاوش
    نوشته ها
    70
    تشکر
    43
    تشکر شده 7 بار در 6 پست

    Icon16

    این درست هست. ولی منظورم نحوه ی استفاده از علامت هاست . مثلا این یعنی چی (SCS&0x40) کاربرد & اینجا چی هست ؟ یا اون علامت نقیض قبلش !!!

  6. #4
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    کد:
    while (!(SCS&0x40)); // Wait until main oscillator is stable (OSCSTAT
    منظورش اینه که تا شرط این عبارت صحیح نشده تو حلقه گیر میفته
    علامت & به معنی and منطقی و بیتی هست یعنی and دو عبارت 0x40 با مقدار رجیستر SCS مقدار صفر بگیره شرط حلقه برقراره و به جز این از حلقه خارج میشه

  7. تشکرها از این نوشته :


  8. #5
    کاربر علاقه مند siavash7 آواتار ها
    تاریخ عضویت
    Jan 2013
    نام
    سیاوش
    نوشته ها
    70
    تشکر
    43
    تشکر شده 7 بار در 6 پست

    پیش فرض

    حالا کاملا فهمیدم مرسی .

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •