تاخیر داشتن اجرای interaction کلیدها در touchgfx

من خیلی معمول طبق اسناد و راهنمایی که در اینترنت وجود داشت touchgfx رو روی میکروکنترلر stm32f767ig با برد کویر الکترونیک راه اندازی کردیم.
ال سی دی 480*800 با مد 16 بیتی
آخرین نسخه keil 5.37 و آخرین نسخه cubemx و touchgfx
تنظیمات رو انجام دادیم و برنامه ایجاد شد توابع مربوط به تاچ ها در فایل touchcontroler را انجام دادیم.

از تو محیط touchgfx designtor یک کلید ساده قرار دادیم.و interaction رو روی ایجاد تابع مجازی گزاشتیم.

وقتی این برنامه رو کامپایل کردیم و روی میکرو ریختیم
اتفاقی که می افته اینکه که :
وقتی دکمه ها را لمس میکنیم شکل اش عوض میشه (هر کلید دو تا عکس داره یکی حالت عادی و یکی حالت فشار داده شده) یعنی به هر لمس ما واکنش نشون میده.
ولی مشکل این جاست که تابعی که قرار اجرا بشه از هر چند باری که میزنی یه بار اجرا میشه.
بعضی وقت ها همون دفعه اول اجرا میشه
بعضی وقتا چهار و پنج بار میزنی دفعه آخر اجرا میشه.:dizzy_face:

حتی نوع interaction رو هم عوض کردم و دو صفحه ایجاد کردم ،و در هر صفحه یک دکمه که از صفحه اول به دوم برود و برعکس، ولی همین مشکل باز هم پابرجاست یعنی با اینکه دکمه به لمس ما واکنش نشون میده ولی اجرای interaction اش بگیر نگیر داره !!

حتی با تغییر نوع کلید ها هم مشکل حل نشد.

2 پسندیده

به نحو عجیبی مشکل حل شد.
البته حل نشد،صورت مسئله رو پاک کردم :expressionless:
هیچی فقط اینکه دیدم من که از این توابع c++ کتابخونه های touchgfx سر در نمیارم،بماند اینکه اصل توابع فایل lib بود و سورسی ازش موجود نبود.
دست آخر کاماپلر رو عوض کردم رفتم IAR 9.3 نصب کردم. اونم عجیب بود فقط رو حالت optimization روی none درست کار میکرد :neutral_face::frowning:
یعنی رو حالت های دیگه بهینه سازی ،حتی low که اولین سطح بهینه سازی است، مشکل داشت و دقیقا مثل keil رفتار میکرد.!

اینو که دیدم رفتم تو keil حالت های بهینه سازی مختلف رو امتحان کردم ولی رو هیچ کدوم درست نبود😑

دیگه واقعا برنامه من که نیست کتابخونه touchgfx است چرا آخه !! یه چیزی میگه یه نسخه قدیمی touchgfx رو نصب کنم تست کنم.

ضمن اینکه بگم یه نفر دیگه هم همین مشکل رو داشت تو به گروه تلگرامی و وقتی ازش پرسیدم چه طوری حل اش کرده گفت نسخه touchgfx رو به روز کرده ، من که همه رو آخرین نسخه برزور رسانی کردم پس از این نیست ولی این احتمال که مشکل از خود توابع touchgfx باشه
رو تقویت می‌کنه.

دوستان راهی دارید که رو همون keil این برنامه رو ادامه بدم ؟

1 پسندیده

سلام
احتمال لرزش مقادیر تاچ رو هم در نظر بگیر.
اگه میخوای مطمئن شی یه کلید سخت افزاری قرار بده و با فشار دادنش مختصات محل کلید رو به تابع ورودی مختصات بده ببین بازم همین مشکل وجود داره؟

سلام به همگی … مشکل touchgfx نیست …تو همون کیل هم بخاطر optimize هستش که اونطوری بود… شما اپتیمایز رو بزارید روی none و مشکلتون حل میشه … کلا اپتیمایز کردن یه برنامه نیاز به دانش بهتری از زبان برنامه نویسی داره … اگر اون دانش رو نداشته باشیم بهتره اپتیمایز رو فعال نکنیم …

2 پسندیده

از اون بابت مطمئن هستم چون تو تابع دریافت مختصات تاچ
breakpoint گذاشته بودم.هردفعه که لمس میکردم داخل اش می آمد و گفتم ضمن اینکه شکل button با لمس من تغییر میکرد.

راستی جناب رضاپور من با ویدیو های شما برای touchgfx رفتم جلو :relieved: اونجا دیدم شما همیشه از IAR استفاده میکردید گفتم شاید شما هم این مشکلات رو داشتید، البته بیشتر فکر کنم به خاطر سرعت کند build کردن keil بوده که سمت اش نرفتید.

1 پسندیده

مشکل اینکه تو keil بهینه سازی none نداره کمترین سطح بیهنه سازی اش O0- هست. که رو اونم گذاشتم بازم مشکل داشت.

آره
کامپایلر IAR خیلی سریعتر کامپایل میکنه
مثلا یه پروژه اترنت کیل حدود 30 40 ثانیه طول میکشید تا کدها رو کامپایل کنه ولی با iar ده ثانیه هم نمیشد.
ولی اون موردی که گفتم هم چک کن
یه مقدار ثابت بده ببین نتیجش چی میشه

گفتم که کلید می‌ره رو حالت pressed پس نمی تونه از اون باشه. همین برنامه تو IAR با اون شرح وقایعی که گفتم داره مثل مرد کار می‌کنه :grin:

بعد هم یه مدرک دیگه پیدا کردم که ثابت می‌کنه گزینه پنج ام صحیح است :joy: :

سلام مجدد
یه مشکل عجیب تو پیامهای قبلی گفتم که بالاخره تو IAR و فقط رو optimization روی none مشکل حل شد.
حالا امروز اومدم CMSIS rtos v1 رو به برنامه اضافه کنیم با اینکه به هیچ چیزی از تنظیمات بهینه سازی دست نزده بودم بازم هم همون مشکل پیش آمد :cry:
یعنی فقط با اضافه کردن RTOS از داخل cubemx !!!

رفتیم نسخه ۴.۱۶.۱ touch gfx رو نصب کردم درست نشد
تو keil و IAR و GCC برسی کردم درست نشد.
تنظیمات بهینه سازی رو بالا و پایین کردن درست نشد.

هیچی دیگه آخر از خیر RTOS گذشتم :cry:

تو پنجره callstack تو محیط دیباگ برسی کردم دیدم آخرین نقطه ای که به لمس روی کلید ها سریع واکنش میده داخل توابع فایل touchgfx_core.lib هست.
دیگه از من کاری بر نمیاد :frowning:
مهندسین گرامی نظری ندارید ؟

سلام منم دقیقا همین مشکل دارم
کلیک میشه ولی تابع مربوطه اجرا نمیشه
توی ide , keilهم تست کردم جواب نگرفتم
مختصات دقیق هم دادم فایده نداشت
پیشنهادی دارید؟

استک تسک touchgfx رو چقدر گذاشتین ؟

ولا زیاد به تنظیمات freeRTOS آشنا نیستم.
ولی یادمه بیشترین مقداری که میشد گزاشتم ، فکر کنم حدود ۴۰۰۰ بابت