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

موضوع: تاثیر تایمر برروی یوزارت

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Jul 2012
    نام
    مهتاب
    نوشته ها
    38
    تشکر
    11
    تشکر شده 2 بار در 2 پست

    New تاثیر تایمر برروی یوزارت

    سلام دوستان
    من با استفاده از تایمر stm32 یه کلاکی تولید میکنم برای کار با یه سنسور نوری و اطلاعاتی که از سنسور میاد داخل میکرو رو با usart میفرستم برای کامپیوتر . کلاک رو با صفر و یک کردن یک پین خروجی در روتین وقفه تایمر تولید میکنم . زمانی که کلاک در حدود مثلا 5Khz هست usart با baudrate 57600 اطلاعات را بخوبی برای کامپیوتر ارسال میکنه اما وقتی کلاک رو افزایش میدم مثلا به 500Khz ، یوزارت نمیتونه ارسال رو انجام بده و تو دستور
    while(!USART_GetFlagStatus(USART1,USART_FLAG_TXE)) ;
    گیر میکنه.
    چطور میتونم این مشکلو حل کنم؟ اصن اینا چه ربطی به هم دارن؟ چون من اطلاعات رو میریزم داخل یک آرایه و تا وقتی آرایه رو کامل از طریق یوزارت ارسال نکردم اطلاعات جدید رو داخلش نمیریزم. ینی ممکنه این وقفه تایمر که حالا سرعتش زیاد شده وسط کار ارسال یوزارت مشکل بوجود بیاره؟

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

  3. #2
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    لابد هنوز داده ی قبلی کاملا ارسال نشده شما داده ی جدید میفرستی

  4. #3
    کاربر علاقه مند
    تاریخ عضویت
    Jul 2012
    نام
    مهتاب
    نوشته ها
    38
    تشکر
    11
    تشکر شده 2 بار در 2 پست

    پیش فرض

    نه این مورد رو رعایت کردم قبل از ارسال داده فعلی داده جدیدی داخل بافر قرار نمیگیره برای ارسال.

  5. #4
    کاربر فعال
    تاریخ عضویت
    Apr 2011
    نوشته ها
    108
    تشکر
    34
    تشکر شده 70 بار در 34 پست

    پیش فرض

    سلام دوست من
    من تخصص زیادی ندارم ولی احتمالان یک از اینترا‍پت ها تون رو انقدر سریع اجرا می کنید که به اون یکی فرصت اجرا نمی رسه یا اینترا‍پت روتین یکی از قسمت هاتون زیادی بلنده یا شاید اینتراپت رو به موقع کلیر یا دیس ایبل اینیبل نمی کنید
    ویرایش توسط Greatal : 31-08-2014 در ساعت 03:33

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


  7. #5
    کاربر علاقه مند
    تاریخ عضویت
    Jul 2012
    نام
    مهتاب
    نوشته ها
    38
    تشکر
    11
    تشکر شده 2 بار در 2 پست

    پیش فرض

    چطور میشه Interrupt مربوط به timer را disable کرد؟

  8. #6
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mahtab68 نمایش پست ها
    چطور میشه interrupt مربوط به timer را disable کرد؟
    سلام
    مثلا برای غیرفعال کردن وقفه تایمر 2 تو دستورات زیر enable رو disable کنید:
    کد:
    NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
    _____________________________________
    _____________________________________

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


  10. #7
    کاربر علاقه مند
    تاریخ عضویت
    Jul 2012
    نام
    مهتاب
    نوشته ها
    38
    تشکر
    11
    تشکر شده 2 بار در 2 پست

    پیش فرض

    خیلی ممنون از کمکتون مشکلم حل شد.

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


موضوعات مشابه

  1. [سوال] مد سنکرون یوزارت
    توسط mahtab68 در انجمن مباحث کلی ARM
    پاسخ: 0
    آخرين نوشته: 27-06-2014, 17:39
  2. یوزر مانوال LandTiger V2.0
    توسط 0098 در انجمن LPC series (NXP)
    پاسخ: 0
    آخرين نوشته: 06-06-2014, 12:43
  3. تنظیم فیوزبیت ها
    توسط pesaroone در انجمن AVR
    پاسخ: 0
    آخرين نوشته: 26-07-2013, 17:35
  4. پاسخ: 29
    آخرين نوشته: 13-04-2013, 16:55

کلمات کلیدی این موضوع

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

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