لینک : قسمت معرفی کتابخانه

 

لینک : راهنمای استفاده از کتابخانه touch قسمت 2 ( راه اندازی)

لینک :راهنمای استفاده از کتابخانه touch قسمت 3 ( بخش اول – تنظیم پریفرالها)

 

با درود به تمای دوستان .

 

به اولین قسمت از راهنمای استفاده از کتابخانه  touch  خوش آمدید.

طبق معمول اولین قسمت همیشه اختصاص داره به باز کردن در جعبه .

 

*********************************************************

 

در این قسمت توضیح خواهم داد که بعد از تهیه کتابخانه (  از اینجا   ):

1 -  چه پوشه هایی رو در یافت خواهید کرد .

2 -  پوشه ها به کدام قسمت کتابخانه مربوط میشوند .

3 – نام فایلها پسوند هایی داره که اون پسوند ها ( مثل _conf ,_name ,  _link , _typedef  و غیره ... )  هرکدام به چه معنایی هستند.

4- یک مقدار در مورد سیستم و  نحوه ی کارکرد کتابخانه ( یا در واقع نوع ارتباط پوشه ها )توضیح خواهم داد.

 

*********************************************************

*********************************************************

 

کتابخانه به صورت یک فایل با پسوند RAR در اختیار شما قرار خواهد گرفت .

بعد از  خارج کردن آن از حالت فشرده 2 پوشه خواهید دید .( تصویر زیر )

 

*********************************************************

پوشه example :

 

  یک مثال برای استفاده از کتابخانه تاچ است ( فیلمهایی که شما در قسمت معرفی مشاهده کردید مربوط به همین مثال هست )

پوشه touch_ver_1.0.0 :    این پوشه فایلها و فولدرهای کتابخانه رو در خودش جای داده است.

 

*********************************************************

*********************************************************

محتویات پوشه  touch_ver_1.0.0  :

 

در پوشه  touch_ver_1.0.0  شما 3 پوشه دیگر مشاهده خواهید کرد ( تصویر زیر )

*********************************************************

xpt2046_driver :

 

 این پوشه همانطور که از اسمش پیداست ، درایور و راه انداز  آی سی کنترلر تاچ هست وقابلیتهای آی سی کنترلر xpt2046( فارغ از بحث مربوط به تاچ) از طریق فایلهای این قسمت در اختیار کاربر قرار خواهد گرفت .

 که فایلهاش رو در تصویر زیر میبنید .

 

*********************************************************

 

touch_lib :

این پوشه شامل فایلهای اصلی کتابخانه تاچ هستند و کلیه امکانات تاچ مثل کالیبراسیون تاچ ، خواندن مختصات لمس شده  ، خواندن مقدار فشار و غیره...در این قسمت قرار دارد.

فایلهای این قسمت را در تصویر زیر میبینید.

*********************************************************

 

use_touch :

این قسمت از ضروریات کتابخانه نیست .

واگر کلا حذف بشه اختلالی در کارد کتابخانه به وجود نخواهد آمد .

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

برای راه اندازی کتابخانه نیاز هست یک متغیرهایی تعریف بشه و یکسری دستوراتی اجرا بشه .

من در این قسمت اون متغیرها رو تعریف کردم و اون مراحل رو به صورت توابعی ایجاد کردم .

پیشنهاد میکنم که این رو حذف نکنید و در صورت نیاز در اون تغیراتی به سلیقه خودتان ایجاد کنید .

فایلهای این قسمت رو در تصویر زیر میبینید .

 

*********************************************************

*********************************************************

 

محتویات پوشه example:

 

در پوشه example   همان پروژه ای قرار دارد که فیلم و تصاویر قسمت معرفی مربوط به اجرای این پروژه هستند .

این پروژه با نرم افزار  True Studio  ( که از کمپایلر GCC استفاده میکند وبرای محیط ویرایشگر آن از نرم افزار Eclips  استفاده شده است ) تولید شده است .

نرم افزار  cube IDE  هم از کمپایلر GCC استفاده میکند اما تا کنون تست نکردم که این پروژه قابل import  شدن در cube IDE  هست یا خیر .

در هر صورت فایلهای این مثال رو در تصویر زیر میبینید.

*********************************************************

فلش قرمز :

 

فایل  Cube MX  مربوط به این پروژه  رو قرار دادم تا شما برای اطلاع از کلیه تنظیمات سخت افزار ابهامی نداشته باشد.

 

*********************************************************

کادر نارنجی :

 

فایلهای کتابخانه هستند .

*********************************************************

کادر آبی :

 

فایل main.c  در این پوشه قرار دارد .

 

*********************************************************

 

کادر سبز :

 

فایل های مربوط به شبه GUI  مورد استفاده در این مثال ( شامل عملکرد نمایش دگمه ها  و واکنش به تاچ دگمه) در این پوشه قرار دارد .

 

*********************************************************

*********************************************************

 

3 – نام فایلها پسوند هایی داره که اون پسوند ها ( مثل _conf ,_name ,  _link , _typedef  و غیره ... )  هرکدام به چه معنایی هستند؟

 

برای این مورد لطفا به   (  اینجا  )  مراجعه کنید .

 

*********************************************************

*********************************************************

4-  توضیح  در مورد سیستم و  نحوه ی کارکرد کتابخانه ( یا در واقع نوع ارتباط پوشه ها) .

 

همانطور که در بالا توضیح دادم کتابخانه از 3 قسمت ( در قالب 3 پوشه ) تشکیل شده است .

این 3 قسمت یک ارتباطی با هم دارند که به شرح زیر هست .

 

به طور خلاصه : 

قسمت use_touch   از  touch_lib  استفاده میکند و touch_lib    از xpt2046_drive  برای ارتباط با کنترلر تاچ بهره میبرد .

 

و به طور دقیقتر:

*********************************************************

 

عملکرد xpt2046_drive  :

این قسمت از کتابخانه هیچ ربطی به موضوع تاچ ندارد . وکاملا مربوط به آی سی xpt2046    میشود .

این آی سی به طور خاص یک کنترلر برای تاچهای مقاومتی هست و روی بعضی از ماژولهای LCD  نصب شده است .

آما فرض کنید که شما این آی سی را از بازار تهیه کردید و میخواهید از قابلیتهای مبدل ADC آن ( بوسیله ADC مختصات تاچ را تشخیص میدهد) استفاده کنید .

این قسمت از کتابخانه دسترسی به تمام امکانات این آی سی را رای شما فراهم خواهد کرد و حتی این بخش را به عنوان یک کتابخانه مستقل میتوانید استفاده کنید .

 

*********************************************************

عملکرد touch_lib :

 

وقتی پای موجودی به اسم تاچ به پروژه شما باز میشه نیاز هست این قسمت به پروژه اضافه شود .

این بخش از کتابخانه برای فرمان دادن به آیسی کنترلر تاچ از قسمت xpt2046_drive  استفاده میکند و  در آن تمام قابلیتهای لازم برای کالیبره کردن تاچ ، دریات مختصات نقطه لمس شده ، چرخش نرم افزاری مختصات تاچ و غیره ....  قرار داده شده است .

و هیچ وابستگی به نوع آی سی کنترلر تاچ یا حتی کتابخانه آن ندارد .

یعنی در صورت نیاز میتوانید قسمت xpt2046  را حذف کنید و به جای آن  از یک کتابخانه مربوط به یک آی سی کنترلر دیگه  استفاده کنید .

اما چطور قسمت touch_lib متوجه میشه که از درایور جدید باید استفاده کنه ؟

 

پاسخ:

 

توابع مورد نیاز این بخش از طریق یک فایل با اضافه  _link  در قالب چند ماکرو  به این بخش touch_lib معرفی میشه .

در واق شما قادر خواهید بود کتابخانه مربوط به درایورهای مختلفی را به قسمت touch_lib  متصل کنید .

البته جزئیات بیشتر در این باره را در قسمتهای بعدی مربوط به راهنمای استفاده  ،  توضیح خواهم داد.

 

*********************************************************

عملکرد use_touch:

 

این بخش از قسمت touch_lib  استفاده میکند و برای استفاده آسان تر ازبخش touch_lib  طراحی شده است .

در حالت برای استفاده از قسمت قبل ( touch_lib  ) نیاز به تعریف متغیرهایی و اینیشال کردن قسمت درایور قبل از استفاده وجود دارد .

در این قسمت این متغیرها به شکل مناسب تعریف  و کارهای  لازم به صورت ماکروها و توابعی خلاصه سازی شده اند .

اتصال این قسمت به قسمت قبلی از طریق یک فایل با اضافه نام   _link انجام میشود .

 

 

*********************************************************

*********************************************************

 

 

در قسمتهای بعد ابتدا نحوه ی راه اندازی مثال همراه کتابخانه رو توضیح خواهم داد و بعد از اون به جزئیات مربوط به هر قسمت خواهم پرداخت .

فکر میکنم این روش از لحاظ صرفه جویی در زمان و حوصله مناسب تر باشه .

 

مطالب مربوط به قسمت اول در اینجا به پایان رسید .

امیدوارم مورد توجه شما قرار گرفته باشد .

 

با سپاس.

 

لینک قسمت بعد