-
2 فایل پیوست
systick میکرو stm32f103
سلام
سال نو مبارک
برای میکروی stm32f103rbt6
rtos رو راه انداختم و thread هارو تعریف کردم و با پورت سریال به راحتی کار میکنه
ولی متوجه مشکلاتی شدم:
1. وقتی از osDelay استفاده میکنم، تیک های سیستم عامل فوق العاده کند هستن و باعث میشه خیلی طول بکشه. یعنی osdelay(10000) به جای 10 ثانیه، 45 ثانیه طول میکشه! هر کاری کردم دیدم جواب نمیده
*** مدار میکرو کریستال 8 مگ هست
*** تنظیمات کلاک هم مثل شکل های زیر هست
این کندی کلاک رو دیدم که تو فایل RTX_Conf_CM-.c اگه Timer Clock Value رو برابر با 8مگاهرتز قرار بدم و Timer tick value رو برابر با 10000 میکرو ثانیه (10 میلی ثانیه) قرار بدیم این مشکل طولانی شدن osDelay حل میشه!!! در حالیکه این مقادیر باید 72مگاهرتز و 1000 میکرو ثانیه باشن!!!!!!!!!! با مقادیر اصلی خیلی طول میکشه
و اینکه توی یه نخ که حین اجرای برنامه ساخته میشه و قراره داده هایی رو از سریال بخونه، عجیب سرعت کند میشه!!!!
دوستان مشکل کلاک و این ایرادات از چی میتونه باشه؟ چرا با 72مگا هرتز اون قدر تاخیر طول میکشه؟! برنامه هیچ چیز خاصی نداره.... فقط یه سریال خونده میشه و چندتا نخ
ممنونم
-
کسی تا حالا به این مشکل بر نخورده؟
-
سلام
قائدتا نباید این طور باشد.
این timer clock value چرا 80 مگ گذاشته شده مگه 72 مگ کلاکتان نیست!؟
هر تیک سیستم 10 میلی ثانیه طول میکشه پس در delay اگه 100 بذارید باید سر یک ثانیه باید انجام بشه مگه کلاک درست نباشه.
اینکه فرمودید : با پورت سریال به راحتی کار میکنه . خوب اینجا اگه کلاک درست نباشه با توجه به عددی که گذاشتید برای تنظیم باودریت اگه مشکل داشته باشه کلاک محاسباتم درست نیست و چرند نشون میده.
-
دقیقن... خب مشکل هم همینجاست....
timer clock value با 8 مگاهرتز تیک ها رو درست میشماره... وقتی میزارمش رو 72 مگ و تیک ها رو 1000 میکرو قرار میدم اونوقت کلن کند میشه!! و من برای پردازش ها باید روی 1000 میکرو ثانیه قرار بدم تیک ها رو که این میکرو نمیزاره!!!
بعد هم با timer clock value 72مگ و هم با 8 مگ پورت سریال به خوبی کار میکنه....
نمیدونم چرا اینقدر اذیت میکنه این میکرو...
-
سلام چطوری داداش من پیشنهادم این هست که با freertos و نرم افزار کیوب ام ایکس کار کن