محل تبلیغات شما



با سلام .

توی این سری از مطالب قرار هست  در موردفایلها ، قابلیتها ، نحوه ی تنظیمات، و راه اندازی  کتابخانه مربوط به lcd nokia1661 به صورت نرم افزاری مطالبی را بیان کنم . این مطالب سبب صرفه جویی در زمان شما برای کار با کتابخانه خواهد شد پس به دقت مطالب را دنبال نمایید.

برای تهیه کتابخانه میتوانید به اینجا مراجعه نمایید

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

زمانی که فایل در یافتی رو از حالت فشرده خارج میکنید 4 پوشه در اختیار شما قرار میگیرد .

فایلهای کتابخانه

پوشه Example  مثال راه اندازی است که شامل کدها و فایل اجرایی برای avr یا stm32  است   .

پوشه glcd مربوط به قسمت گرافیک،

پوشه txt_lcd_adjustablefont مربوط به قسمت متنی  ،

و پوشه lcd  در واقع هسته کتابخانه  است.

قبل از اینکه در مورد فایلهای هر پوشه توضیح بدم ، یک مطلب کلی را در مورد نام فایلهاو کارکردشون توضیح میدم :

1 - فایلهایی که در نام آنها typedef  وجود دارد :

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

2 - فایلهایی که در نام آنها names وجود دارد :

  این فایل شامل مقادیر مجاز برای استفاده در فایل   conf  و typedef  است . که برای سهولت استفاده نامگذاری شده اند.

3- - فایلهایی که در نام آنها conf وجود دارد :

   این فایل اصلی ترین فایل برای کاربران است چرا که config  کتابخانه ، در این فایل انجام میشود و       می توان از طریق  آن برخی قابلیتها را در کتابخانه فعال یا غیر فعال کرد که در حجم و سرعت اجرای توابع کتابخانه تاثیر گذار است .

بعد از این توضیح کوتاه فایلهای هر پوشه را توضیح میدم .

پوشه lcd  شامل فایلهای زیر است:

فایل های هسته

فایل های nokia1661_lcd.h و nokia1661_lcd.c   :

در این فایل هاالگوی توابع و  بدنه توابع کتابخانه تعریف شده است .

فایل spdf54124b.h :

این فایل شامل کامندهای مربوط به درایور lcd  هست . که برمبنای دیتا شیت چیپ درایور lcd نامگذاری شده اند .

فایل spdf54124b_color.h :

این فایل شامل یک تعدادی از کدهای رنگ مربوط به lcd هست .

بقیه فایلها هم کارکردی مطابق طبق توضیحات کلی بالادارند .

 

فایلهای پوشه glcd شامل فایلهای زیر است :

فایلهای پوشه glcd

این دو فایل شامل الگوی توابع و بدنه توابع گرافیکی کتابخانه میباشند .

فایلهای پوشهtxt_lcd_adjustablefontشامل فایلهای زیر است :

فایلهای قسمت text

4 فایل اولی از بالا  فونت هستند .

فایلهای txt_lcd.h و txt_lcd.c  فایلهلی اصلی قسمت متنی هستندکه تعاریف الگو و سورس توابع در آنها قرار دارد.

فایل txt_lcd_persian_table.h :

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

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

فایل txt_lcd_font.h :

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

کارکرد بقیه فایلها هم طبق همان توضیحات کلی در مورد فایلها میباشد .

 

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

لینک قسمت بعدی : در حال تکمیل

 

 

 


با سلام   .

چند وقت پیش از یک کتابخانه که در مراحل اول نوشتنش بودم رونمایی کردم . اون موقع نیمه کاره بود و خوشبختانه الان کامل شد . و واقعا ازش رضایت دارم .

این که چرا این کتابخانه رو نوشتم در پست رونمایی محصول اولیه ( اینجا ) کامل توضیح دادم.

 

این کتابخانه برای lcd  های nokia1661  و nokia1616  و کلا تمام ال سی دی هایی که  کنترلر اونها

SPFD54124B هست و در مود  spi 9bit   کار میکنه قابل استفاده هست.

از مزایای این lcd برای استفاده در مدارات میکروکنترلری این است که فقط به 4 پین از میکرو برای ارتباط احتیاج دارد و بسیار ارزان قیمت است ( از ماژولهای led با تعداد 3 رنگ نیز ارزانتر است )و با توجه به مزایایی که دارد نسبت بسیاری از lcd  ها به صرفه تر است.

 

اما بریم سر اصل مطلب :

توضیح مختصری در مورد  lcd nokia 1661  :

این یک ال سی دی ارزان قیمت tft 1.8"  با رزولوشن 128×160 پیکسل هست ( البته برای نوکیا 1616  130×161  هست)که از 65 هزار رنگ پشتیبانی میکنه و از ارتباط spi 9bit  استفاده میکنه و ولتاژ تغذیه و ولتاژ io  ها  3.3 ولت  است.

در زیر تصویر ال سی دی و نامگذاری پایه های اون رو میبینید .

تصویر lcd nokia1661

  

 

 

 

 

 

 

 

   

 

 

 

 

 

 

 

 

 

این کتابخانه برای میکروهای cortex m0و stm32f030  , stm32F0x1-2-8  و AVR نوشته شده است و

مشخصات آن به شرح زیر است :

1 - کمپایلر نسخه AVR :   ـ avr gcc (نرم افزارهای  winavr , Arduino , atmel studio   ) با استاندارد زبانی c99   -   gnu89 - gnu99

2 - کمپایلر نسخه stm32 : ـArm gcc ( نرم افزار true studio ) و با استاندارد زبانی c99   -  c90  - gnu90 - gnu99 مطابقت دارد .

3 - قابلیت تعریف pin های lcd  روی پورتهای مختلف.

4 - قابلیت انتخاب ارتباط از طریق سخت افزار spi  یا به صورت شبیه سازی روی پایه ها

5 - سرعت رفرش بالا خصوصابرای Avr :

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

سرعت رفرش در مورد نسخه stm32  با فرکانس کلاک spi    12MHZ   و کلاک سیستم MHZ  48  در فیلم زیر مشاهده میکنید .

همانطور که میبینید در نسخه stm32 برای 10 بار رنگ کردن صفحه (رفرش) به 323 میلی ثانیه زمان نیاز هست . یعنی هر رفرش در 32.3 میلی ثانیه یا به عبارت بهتر 30.9 رفرش در ثانیه !!!

 

و این رقم برای AVR   مقدار 11.2 بار رفرش در ثانیه هست . !!! که برای Avr  و باتوجه به اینترفیس lcd  رقم قابل توجهی هست که در فیلم زیر میبینید.

 

6. فونت :

6-1  - استفاده از فونتهای زیبا وشکیل .

6-2 - فونت این کتابخانه از نوع طول متغیر است .( البته قابلیت استفاده از فونت با طول ثابت را هم دارد ) که باعث فشردگی مناسب  متن نوشته شده و زیبایی و طبیعی بودن آن میگردد.

6-3 -  قابلیت استفاده همزمان ازانواع مختلف و سایزهای مختلف فونت بدون محدودیت در تعداد( تنها عامل محدودیت حافظه فلش میکروکنترولر شماست) .

6-4 - قابلیت استفاده از فونت فارسی با تشخیص خودکار نوع حروف ( اول ،آخر ،وسط یا تنها )

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

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

و همچنین به قابلیت افزایش طول حروف (حرف شین) .

نمایش قابلیتهای فونت

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6-5- قابلیت فعال کردن  transparent  در مورد حروف چاپ شده در تصویر :

منظور از transparent چیست  :

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

پیکسلهای پس زمینه با رنگ مربوط به پس زمینه (bakground color ) که توسط کاربر تعیین میشود رنگ آمیزی میشود .و در واقع تصویر پشت حروف را پاک میکند . مانند تصویر زیر که میبینید قسمتی از مستطیل آبی و همچنین دایره بنفش رنگ پاک شده است .

تست عدم transparent

اما در هنگامی که قابلیت transparent  فعال باشد ، تصویری که قبل از چاپ حروف روی lcd  هست . در پس زمینه حروف ظاهر میشود و تغییری نمیکند. این قابلیت برای نوشتن متن روی تصاویر مناسب است . مانند تصویر زیر :

تست فعال بودن قابلیت ترانسپرنت

7 - سرعت مناسب چاپ حروف روی صفحه :

عملکرد سرعت چاپ حروف  انگلیسی و فارسی برای  stm32 ودر حالت transparent در تصاویر زیر میبینید .

 

سرعت تایپ حروف انگلیسی  نسخه stm32  

 

 

 

 

 

 

 

 

سرعت چاپ حروف فارسی در نسخه سفئ32

 

 

 

 

 

 

 

 

 

و در مورد نسخه avr ، سرعت چاپ ، برای فعال بودن حالت  transparent  را در تصاویر زیر مشاهده میکنید .

سرعت چاپ حروف انگلیسی در نسخه avr

 

 

 

 

 

 

 

 

  سرعت چاپ حروف فارسی در نسخه AVR

 

 

 

 

 

 

 

 

 ***توجه :

به طور کلی سرعت تایپ فونت فارسی از انگلیسی کند تر است و بسته به اندازه فونت و نوع حروف و شکل فونت متفاوت است . و این تصاویر بیشتر برای ایجاد یک درک نسبی از سرعت چاپ حروف میباشد و میتواند تغییر کند .

 8 - قابلیت چاپ متن در زوایای 0 و 90 و0 و 270 درجه و قابلیت خواندن برخی پارامترها از lcd .

نوشته های قرمز رنگ برخی از پارامترهای خوانده شده مربوط به lcd هستن.

خواندن پارامترهای lcd  و چاپ متن در زوایای مختلف

 

9 - قابلیتهای گرافیکی :

9-1 - قابلیت رسم خط عودی افقی و مورب با ضخامتهای مختلف ( متوازی الاضلاع قرمز رنگ در واقع یک خط مورب با ضخامت 15 است .

9-2 - قابلیت رسم دایره تو پر  و ربع دایره توپردر زوایای 0،90 ،0  ،270 درجه .

9-3 قابلیت رسم دایره توخالی و ربع دایره توخالی در زوایای 0 ، 90 ، 0 ،270  درجه.

9-4 - قابلیت رسم مستطیل توپر

9-5 - قابلیت رسم مستطیل توخالی  .

قابلیتهای گرافیکی

*** توجه :

ضخامت حاشیه دور تمام اشکال توخالی میتواند به دلخوا کاربر تنظیم شود .

10 - میزان حافظه فلش و رم مورد نیاز برای کتابخانه :

این کتابخانه دارای 3 پوشه مهم است .که شامل قسمت هسته ،قسمت متنی و گرافیکی هست .و حجم های مربوطه در جدول زیر آورده شده است .

                                                      حافظه فلشحافظه  رم
                            نسخه AVR  
                          قسمت گرافیکی  3.6 K byte0 Kbyte 
قسمت متنی و هسته با فونت پیش فرض و فعال بودن حالت فارسی5.92 K Byte30 Byte
فونت فارسی  5.02  K Byte10 Byte
                        نسخه stm32  
                             قسمت گرافیکی16  K Byte 
قسمت متنی و هسته با فونت پیش فرض و فعال بودن حالت فارسی10 K Byte 
                             فونت فارسی 6.1  KByte 

       ***مثال های درون فایلهای ارسالی برای atmega32  و stm32 f072نوشته شده است .

       *** حجمهای قید شده در جدول بر مبنای حداکثر ، آورده شده است و در عمل میتواند                کمتر  از این مقدار باشد.

11 - متعلقات اضافی :

شامل دیتا شیت کنترلر و فایلهای pdf برای ساخت یک pcb ساده جهت دسترسی به پینهای lcd

 

قیمت کتابخانه نسخه avr :   مبلغ  100،000  ریال

قیمت کتابخانه نسخه stm32 :   مبلغ  100،000  ریال

قیمت هر دو نسخه همراه هم :       0،000  ریال

برای خرید لطفا مبلغ را به شماره حسابی که در قسمت "در باره وب" ( گوشه راست بالای صفحه )آمده است واریز کنید و ساعت و تاریخ واریز را به همراه یک آدرس ایمیل  کامنت نمایید .

فایلهای لازم ظرف حداکثر 24 ساعت برای شما ارسال خواهد شد .

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

برای اطلاع از اخبار جدید در مورد این کتابخانه خواهشمندم در کانال تلگرام وبلاگ: dastsazeman@

عضو شوید .

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

با سپاس.

 

کتابخانه library tft lcd nokia1661 1616 c1 نوکیا حرفه ای تی اف تی ال سی دی .

 

 

 


با سلام خدمت تمام همراهان گرامی.

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

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

فایل رو بعد از دانلود از حالت فشرده خارج کنید .

فایل word آموزش آلتیوم دیزاینر

آدرس سایتی که مطلب از آنجا برداشته شده است

مالکیت معنوی : انتشار باذکر منبع بلا مانع است .

آموزش آلتیوم دیزاینرaltium designer فایل pdf پی دی اف word وورد.


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

 به نظر شما ایا میشه با دیدن آینده اون رو تغیر داد؟

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

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

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

اگر کنجکاو شدید که چرا نمیشه با ادامه مقاله همراه باشید.

 

اول یک مقدار توضیح بدم که چی شد که این مطالب به ذهنم رسید .

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

اونجا نوشته بود که در خرابه های سومر چیزی رو  پیدا کردن که به نظر دانشمندان یک ماشین زمان هست !!. خلاصه اون رو راه میندازن و یک تصویر از آینده رومیبینن که چندان روشن و امیدوار کننده نیست ، بنابر این سعی میکنن تغیرش بدن ، اما هر اقدامی که انجام میدن تغیری در پیشبینی  اتفاق نمیفته !!!

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

برای اینکه این مطلب رو اثبات  کنیم ، لازمه که ابتده آینده رو یا به عبارت بهتر یک حادثه یا رخداد رو تعریف کنیم .

تعریف :

یک حادثه عبارت است از برآیند تمام رخدادهای مربوط به زمان قبل از حادثه مورد نظر ( از ابتدای هستی تا الان ).

حالا اتفاقی که در پیشگویی میفته اینه که یک نفر در نقطه ای از محور زمان یک حادثه ای رو مربوط به زمانی در آینده میبینه .

نکته مهمی که در این مورد وجود داره اینه که  بین زمان رخ دادن حادثه و زمان پیشگویی شدنش یک فاصله ای وجود داره . این بازه ی زمانی رو ناحیه تاریک مینامیم ( چون کسی از اتفاقات اون خبر نداره )

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

بنابر این هرکاری دوست داشتید میتونید انجام بدید آینده همونطور که پیشگویی شده اتفاق میفته و نمیشه تغییرش داد.!!!!

پیشگویی آینده ماشین زمان سرنوشت پیشگو

مالکیت معنوی: انتشار با ذکر منبع بلا مانع است.


 

با سلام .

استفاده از lcd  رنگی با رابط سریال به جای lcd  کاراکتری یا حتی گرافیکی تک رنگ برای میکروکنترلر avr  به خاطر سبکی ، اشغال تعداد کم پایه و زیبایی همیشه گزینه جذابی بوده . اما مشکلی که برای استفاده از tft  رنگی وجود داره سرعت کم رفرش صفحه ست . به عبارتی اطلاعات اینقدر کند روی صفحه نمایش داده میشه که توی ذوق میزنه .

مژده ای که بهتون میدم اینه که یک کتابخانه tft LCD با رابط spi برای میکروکنترلر AVR و stm32 نوشتم( در واقع هسته ش رو نوشتم) که پینهایی کمی از میکرو رو اشغال میکنه و در عین حال برای avr سرعت خیلی زیادی داره !!! راستش خودم همچین سرعتی رو توی کلیپهایی که  توی یوتوب هست و کتابخانه های مشابه ندیدم  .   سایز این ال سی دی "1.8 هست و اینترفیسش رابط spi  با طول 9 بیت هست  و فقط 4 پین از میکروکنترلر رو اشغال میکنه . و کتابخانه با کمپایلر  avr gcc (در اتمل استودیو  , winavr و آردوینو قابل استفاده هست )و arm gcc  نوشته شده

توی این کلیپ سرعت رفرش این کتابخانه برای avr نمایان هست .  وبرای stm32 هم از لحاظ سرعت هیچ مشکلی نداره ( برای همین فیلمش رو نگذاشتم )

همانطور که در تصویر میبینید زمان لازم برای هر بار رفرش صفحه با استفاده از سخت افزار اس پی آی  87.3 میلی ثانیه هست . که میشه 11.45 بار در  ثانیه!!!! . این سرعت رفرش برای  فرکانس کلاک 16 مگاهرتز است و قابل توجه هست .با کریستال 20 مگاهرتز سرعت رفرش به  14 بار در ثانیه خواهد رسید که برای AVR  سرعت خوبی هست!!! ( برای stm32f0  با کلاک 48 مگاهرتز 32 با درثانیه شد)

قابلیتهای مهم  قسمت متنی این کتابخانه به شرح زیر است :

1 - استفاده از رابط spi برای ارتباط با lcd  به صورت نرم افزاری و سخت افزاری

2 - قابلیت انتخاب حالت راست به چب و برعکس برای چاپ متن.

3 - قابلیت چرخش تایپ متنی در زوایای 90 و 0 و 270 درجه برای هر دو حالت بالا

4 - قابلیت خواندن از lcd  که البته فقط به صورت نرم افزاری در اختیار هست .

 

قصد دارم برای این ال سی دی یک ماژول ساده و تا حد امکان ارزان قیمت طراحی کنم که هم برای 3.3 ولت و هم 5 ولت قابل استفاده باشه ( با هدف جایگزینی به جای LCD کاراکتری ) و به همراه کتابخانه برای فروش قرار بدم .

فعلا نکته قابل توجه سرعتش برای avr هست .

1398/08/16 :

خوشبختانه کار کتابخانه به پایان رسید و تغیراتی رو که مد نظرم بود از قبیل تعویض فونت  با یک فونت متغیر و شکیل و تهیه یک فونت فارسی زیبا و ایجاد قابلیتی به نام ترانسپرنت ،و ایجاد یک قسمت برای گرافیک ، انجام دادم . در حال حاضر کتابخانه برای عرضه آماده است و میتوانید آنرا از اینجا تهیه نمایید .

لطفا بنده را از نظراتتان بهره مند کنید .

و برای اطلاع از موارد جدید در این مورد  ، از کانال تلگرام  وبلاگ  dastsazeman@ استفاده نمایید .

 

تشکر و قدر دانی :

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

برای مراجعه به پستی که کتابخانه اولیه توسط جناب زئوس در آن معرفی شده به اینجا مراجعه کنید.

 

ال سی دی  lcd  نوکیا 1661  nokia   ارزان tft  تی اف تی 1.8"  اینچ کتابخانه سریع

 


اندیکاتور فراکتال به همراه محاسبه خودکار نسبتهای فیبوناچی برای آمی بروکر( رونمایی)

با سلام.

مطالب کلی پیرامون اندیکاتور :

قبلا یک اندیکاتورفراکتال برای آمی بروکر  توی وبلاگ قرار ارائه کرده بودم  که نقاط فراکتال رو روی چارت نمایش میداد. ( اینجا).در حال حاضر این اندیکاتور رو ارتقا دادم و قابلیت محاسبه خودکار نسبتهای فیبو ناچی امواج ، که بر اساس فراکتالها بدست آمده را به اندیکاتور قبل ، اضافه کردم .

این اندیکاتور نسبتهای امواج را در مقیاس لگاریتمی ( مناسب برای تحلیلهای بلند مدت و کوتاه مدت ) محاسبه میکند ، و علاوه بر محاسبه نسبتهای فیبوناچی قیمت ، نسبتهای فیبوناچی مربوط به زمان ( تحلیل زمانی ) را نیز محاسبه میکند.

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

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

تصویر اندیکاتور رو در زیر میبینید .

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

نام این اعداد 2 حرفی هست که با E  و R شروع میشه که به ترتیب به معنی Ritrace و Extension  هست .

و حروف دوم  p و  t هستند که به ترتیب بیانگر price و time  هستند .

در ابتدا به تشریح عدد اول و سوم میپردازیم :

عدد Rp :

این عدد بیانگر نسبت فیبو ناچی اصلاح قیمت ( price retracement ) است. و این مقدار را نسبت به موج قبلی محاسبه میکند به طور مثال  :

اگر در انتهای یک موج نزولی Rp=0.6523 نوشته شده باشد . به این معنی است که موج نزولی فعلی، 65.23%( در عدد 100 ضرب کنید)  از موج صعودی قبلی را اصلاح کرده است .

عدد Rt :

این عدد بیانگر نسبت فیبو ناچی اصلاح زمانی ( time retracement ) است. و این مقدار را نسبت به موج قبلی محاسبه میکند به طور مثال  :

اگر در انتهای یک موج Rt=0.6523 نوشته شده باشد . به این معنی است که موج  به لحاظ زمانی 65.23%( عدد را در 100 ضرب کنید)  از زمان تکمیل موج قبلی را طی کرده است  .

 

توضیح عدد دو و چهارم :

عدد Ep :  بیانگر نسبت فیبوناچی اکستنشن قیمت موج فعلی نسبه به دو موج قبل هست .

به طور مثال : اگر موج اخیر  به عنوان موج C  از یک زیگزاگ ABC باشد و عدد   1.7826=  Ep  در انتهای  موج  نمایش داده شود ، بدین معنی است که طول موج C  به A  مقدار 178.26% است .

عدد Et : 

 همان عملکرد عدد  Ep  را دارد منتها   نسبت  زمانهای موج C  به A را محاسبه میکند و برای تحلیل زمانی به کار میرود .

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

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

با تشکر .

 

اندیکاتور فراکتال آمی بروکر  fractal indicator  محاسبه اتوماتیک خودکار نسبتهای فیبوناچی retrace , extension , expanision مقیاس لگاریتمی    scale  logarithmic  

 

 

 

 

 


 

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

برای همین ترفندی رو که در بالا میبینید پیاده کردم .

یک گیره کاغذ رو ( به خاطر اینکه استحکامش خوبه ) تهیه کنید و اون رو باز کنید تاصاف بشه و با سوهان ظریف نوکش رو تیز کنید و محکم دور نوک هویه بپیچید.

برای هویه من که 60 وات هست خیلی خوب جواب داد .باهاش پایه های میکرو کنترلر stm32 رو که پکیج LQFP داره رو لحیم کردم !!! برای هویه با توان کمتر رو نمیدونم که آیا جواب میده یا نه  ، باید امتحان کنید.

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

 

نوک هویه قطعات  smd لحیمکاری تبدیل تجهیز تعویض نوک هویه

 

 

 

 

 

 

 


 کتابخانه spi  برای میکروهای  avr  atmega8-16-32-64-128, کنترل حجم نسخه ,امکان تغییر تنظیمات هنگام کار,نرم افزار winavr , زبان c , کمپایلر gcc ,  آردوینوarduino

 

 

 

 

اولین پست مطلب :( قسمت اول :معرفی کتابخانه )

پست قبلی : (قسمت سوم :فایلهای کتابخانه )

پست بعدی :( هنوز تکمیل نشده )

 

 

با سلام .

توی این قسمت توابع مربوط به ارسال و دریافت رو توضیح میدم .

تابع spi_fast_communication_byte( uint8_t  data);

این تابع یک بایت بدون علامت را به عنوان ورودی دریافت کرده و آنرا ارسال میکند و بایتی را که همزمان از شیفت رجیستر spi  دریافت میکند به عنوان نتیجه برمیگرداند . یعنی به طور هم زمان یک بایت را ارسال و یک بایت را دریافت میکند.

تابع_spi_fast_transmit_string_array_nbyte( uint8_t  *data, uint8_t     cmd_nbyte);

این برای ارسال آرایه یا رشته استفاده میشود . data همان آرایه یا رشته است . و متغیر دوم یک کامند است که تعیین میکند تابع در مود ارسال رشته یا آرایه قرار بگیرد .ودر عین حال طول آرایه ارسالی را مشخص میکند . اگر بیت هشتم cmd_nbyte  عدد 0 باشد تابع در وضعیت ارسال آرایه قرار میگیرد و هفت بیت بعدی تعداد عناصر آرایه است که حداکثر میتواند 127 باشد .اما اگر اگر بیت هشتم cmd_nbyte  عدد 1 باشد ، تابع در وضعیت ارسال رشته قرار میگیرد و بقیه بیتها اندازه رشته را مشخص میکند که حداکثر میتواند 127 باشد . تفاوتی که حالت رشته با حالت آرایه دارد در این است که هرگاه تابع به کاراکتر '0\' برسد ارسال متوقف میشود حتی اگر تعداد کاراکترهای ارسال شده کمتر از مقدار مشخص شده درcmd_nbyte باشد . و اگر طول رشته بیشتر از مقداری باشد که در cmd_nbyte مشخص شده است . تمام رشته به طور کامل ارسال نخواهد شد. بنابر این برای حالت رشته بهتر است طول را حداکثر یعنی  127 در نظر بگیرید . چون تنظیمات cmd_nbyte در عمل کمی مشکل است . پیکر بندی های لازم برای ارسال رشته یا آرایه را به صورت ماکروهای زیر  در spi.h تعریف کردم .

spi_fast_transmit_array_nbyte( data,nbyte)

spi_fast_transmit_string( buff)

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

ضمنا این تابع مقدار برگشتی دارد و مقدار برگشتی تابع ، تعداد کاراکترهایی است که ارسال شده اند.

تابع

_spi_fast_recive_string_array_nbyte( uint8_t  *data, uint8_t     cmd_nbyte);

این تابع برای دریافت رشته یا آرایه استفاده میشود . وقوانین مربوط به تنظیم کامند ، همانند تابع قبل است . این تابع مقدار برگشتی دارد و مقدار برگشتی تابع ، تعداد کاراکترهایی است که دریافت شده اند. برای راحتی کار تنظیمات لازم برای دریافت رشته یا آرایه به صورت ماکرو در فایل  spi.h قرار دادم.

ماکروها به شرح زیر هستند

spi_fast_recive_array_nbyte( data,nbyte) ;   
 spi_fast_recive_string( buff);

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

و در مورد ماکرو مربوط به آرایه لطفا دقت کنید طول آرایه data  از طول رشته ای که باید دریافت کنه بیشتر باشه .

کلیه توابع بالا هم در نسخه کم حجم و هم در نسخه کامل وجود دارد البته عملکردش بسته به حجم  نسخه کمی متفاوت است ، در نسخه کم حجم سرعت بالاتری داردولی  نسبت به تنظیمات حساس است به طور مثال اگر وقفه انتقال را فعال کرده باشید و در حین اجرای برنامه وقفه را خاموش کنید این تابع دیگر کار نخواهد کرد . و در نسخه کامل سرعت کمتر است ولی نسبت به تنظیم وقفه انعطاف دارد به طوری که حتی در حین اجرا ی برنامه وضعیت وقف را تغییر دهید توابع به خوبی کار خواند کرد.

توضیحات مربوط به توابع ارسال  دریافت به پایان رسید حال شما با توجه به فایل مثالی که همراه کتابخانه قرار دادم میتونید تنظیمات اولیه و ارسال و دریافت رو انجام بدید. در قسمت های بعدی در مورد توابع مربوط به تنظیمات spi  که البته فقط در نسخه کامل وجود دارد توضیح خواهم داد .

و در آخر لطفا بنده رو از نظرات خودتون در مورد این مطلب به صورت کامنت بهره مند سازید .

با تشکر .

پست قبلی : (قسمت سوم :فایلهای کتابخانه )

پست بعدی :( هنوز تکمیل نشده )

 

 حق مالکیت معنوی : محفوظ است . انتشار با ذکر منبع بلا مانع است .


 کتابخانه spi  برای میکروهای  avr  atmega8-16-32-64-128, کنترل حجم نسخه ,امکان تغییر تنظیمات هنگام کار,نرم افزار winavr , زبان c , کمپایلر gcc ,  آردوینوarduino

 

 

 

 

 

 

اولین پست مطلب :( قسمت اول :معرفی کتابخانه )

پست قبلی : (قسمت دوم :فایلهای کتابخانه )

پست بعدی : (قسمت چهارم : توابع ارسال و دریافت)

 

با سلام مجدد به تمام خوانندگان .

 

در قسمت قبل(اینجا ) در مورد فایلهای کتابخانه توضیح دادم  و ماکرو های مهمترین فایل که spi_conf.h هست رو معرفی کردم و نقشش رو توضیح دادم .

بعد از اینکه تنظیمات رو در فایل spi_conf.h انجام دادید . دستور spi_init()  رو اجرا کنید ( برای راحتی کار و رعایت حروف کوچک و بزرگ پیشنهاد میکنم که نام توابع رو از spi.h کپی پیست کنید ) .

این تایع  تنظیمات واحد spi رو انجام میده و پینها رو در وضعیت مناسب قرار میده  و در هر دونسخه کم حجم و کامل وجود داره . و فرقی نمیکنه از کدوم حالت حجم نسخه استفاده میکنید ، باید قبل از هر کاری با spi  این تابع رو اجرا کنید .

تویحات تکمیلی در مورد spi_init() :

این تابع در واقع یک ماکرو در لایه 5هست که در فایل spi.h ( کلا ماکروها داخل فایل هدر قرار دارند )که اگر به تعریف اون  نگاه کنید میبینید که باز یک ماکرو به اسم   

_spi_init()

که یک تعداد پارامتر داره و در لایه 4 قرار دارد . این ماکرو یی هست که برای پیکر بندی یک تابع ( این یکی دیگه واقعا تابع هست ) به اسم :

__spi_init( cmd)

 تعریف شده و این تابعی هست که spi  رو اینیشیال میکنه منتها برای تنظیماتش یک کامند 8 بیتی در نظر گرفتم . و ماکروی  _spi_init()   که تعدادی پارامتر داره کار سازماندهی کامند رو بر اساس تنظیمات مورد نظر انجام میده .

در نسخه کم حجم از ماکروی

_spi_init()

میتونید برای تغیر تنظیمات spi  استفاده کنید . که البته تنظیمات رو که میخواهید اعمال  کنید باید در  پارامترهای ورودی ماکرو قرار بدید .

تابع spi_deinit() :

این تابع کلا spi رو از کار میندازه و رجیسترها رو به مقدار پیش فرض بر میگردونه . قبل از اینیشیال مجدد میتونید با این تابع spi  را به حالت پیشفرض بر گردونید .

خب تا اینجا مرحله راه اندازی spi  به پایان رسید .

در قسمت بعدی توابع  ارسال و دریافت رو معرفی میکنم .

لطفا بنده رو از نظرات خودتون در مورد این مطلب به صورت کامنت بهره مند سازید .

با تشکر .

 

 

پست قبلی : (قسمت دوم :فایلهای کتابخانه )

پست بعدی : (قسمت چهارم : توابع ارسال و دریافت)

حق مالکیت : محفوظ است . انتشار با ذکر منبع بلا مانع است .

 

 

 


با سلام مجدد.

 

اولین پست مطلب :( قسمت اول :معرفی کتابخانه )

پست قبلی : کتابخانه spi برایavr ( قسمت اول : معرفی)

پست بعدی : ( قسمت سوم : شروع کار با کتابخانه )

 

همانطور که در پست معرفی کتابخانه spi    گفته بودم قصد دارم روش استفاده از کتابخانه رو توضیح بدم .

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

spi.h  spi.c ,  spi_conf.h  ,spi_define_name.h , spi_typedef.h , bit.h

فایل bit.h  شامل ماکروهایی برای دستکاری رجیسترها به صورت بیتی هست که در اغلب کدهایی که من مینویسم این فایل دیده میشه .

فایل  spi .h که در اون فابلهای لازم پیوست و الگوی توابع تعریف شده است.

فایل spi.c تعریف بدنه توابع هست .

فایل spi_typedef.h مربوط به تعریف انواع داده هایی هست که کتابخانه در حالت نسخه کامل (در ادامه ماجرای نسخه کامل رو توضیح میدم )از اونها استفاده میکنه .

فایل  spi_define_name.h   که از فایلهای مهم کتابخانه هست و شامل اسامی هست که شما  برای پیکر بندی واحد spi به اونها نیاز دارید.

و اما مهمترین فایل برای کاربران کتابخانه  که برای تنظیم spi  باید اون رو تغیر بدید فایل spi_conf.h 

 هست ، که پیکربندی spi  در اون فایل تعیین میشه . با نگاهی به محتویات این فایل مطالب زیر رو در اون میبینید :

#define     SPI_VERSION_VOLUME                SPI_full_volume_version

#define     SPI_MASTER_SLAVE_SELECT           SPI_Master_Mode  

#define     SPI_INTERRUPT                     SPI_Enable  

#define     SPI_DATA_ORDER                    SPI_Msb_First

#define     SPI_MODE                          SPI_Mode_0 //SPI_Sample_Rising_Setup_Falling  

#define     SPI_CLOCK                         SPI_fosc_128//  fosc/128   

/* this just for master mode */
#define     SPI_SS_DIRECTION                  SPI_Ss_Output


//**************************

#define     SPI_SS_PORT          PORTB
#define     SPI_SS_DDR           DDRB
#define     SPI_SS_PIN           2U

#define     SPI_MOSI_DDR         DDRB
#define     SPI_MOSI_PIN         3U

#define     SPI_MISO_DDR         DDRB
#define     SPI_MISO_PIN         4U

#define     SPI_SCK_DDR          DDRB
#define     SPI_SCK_PIN          5U

 

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

//********  version volume  names   *****
#define     SPI_full_volume_version        1U     
#define     SPI_low_volume_version        0U

 مقدارSPI_full_volume_version  :

این مقدار کتابخانه در حالت نسخه کامل قرار خواهد داد .

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

فقط عیبی که داره اینه که حجم کتابخانه زیادتر خواهد بود .

 

مقدار SPI_low_volume_version :

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

ماکروی SPI_MASTER_SLAVE_SELECT  که مربوط به انتخاب حالت مستر و اسلیو هست .و شامل انتخابهای زیر است  :

//********   SPI_MODE   name   *****

#define     SPI_Master_Mode    1U     
#define     SPI_Slave_Mode     0U

ماکروی SPI_INTERRUPT مربوط به استفاده از وقفه است  .

ماکروی SPI_MODE :

مربوط به  مد کار spi  هست که تعیین میکنه  نمونه گیری در کدام لبه پالس ساعت و تغیر داده در کدام لبه انجام بشه . و 4 حالت داره که من برای برای تشخیص آسون آونها رو به صورت کامنت در قسمت مربوطه در فایل spi_define_name.h قرار دادم که در تشخیص کمک میکنه .

ماکروی SPI_CLOCK :

که مربوط به فرکانس پالس کلاک spi هست , در حالت مستر تاثیر گذار هست .

ماکروی SPI_SS_DIRECTION  :

که مربوط به تعیین جهت پایه ss  در حالت مستر هست که هر کدام از حالتهای ورودی و خروجی  یک قابلیتی داره اما در حالت  اسلیو تاثیر گذار نیست ولی برای امنیت سخت افزار اون رو ورودی کنید .( اگر این پایه خروجی باشه و شما spi اسلیو رو خاموش کنید پایه به حالت خروجی در میاد که در صورتی که پایه ss مربوط به spi مستر خروجی باشه و ارزش های متفاوتی داشه باشن به دلیل امپدانس کم پورت در حالت خروجی ممکنه جریان زیادی از پورتها عبور کنه .)

ماکروهای

//**************************

#define     SPI_SS_PORT          PORTB
#define     SPI_SS_DDR           DDRB
#define     SPI_SS_PIN           2U

#define     SPI_MOSI_DDR         DDRB
#define     SPI_MOSI_PIN         3U

#define     SPI_MISO_DDR         DDRB
#define     SPI_MISO_PIN         4U

#define     SPI_SCK_DDR          DDRB
#define     SPI_SCK_PIN          5U

مربوط به تعیین تعیین پایه های spi هستن ( و تا اونجا که من بررسی کردم برای میکروهای atmega8-16-32 یکسان هست ) فقط توجه داشته باشید که اون ماکروهایی که در اونها عبارت pin هست مربوط به شماره پایه های مربوطه ست .

تا اینجا توضیح در مورد فایلها به پایان رسید .( ادامه دارد )

پست قبلی : کتابخانه spi برایavr ( قسمت اول : معرفی)

پست بعدی : ( قسمت سوم : شروع کار با کتابخانه )

حق مالکیت : محفوظ است . انتشار با ذکر منبع بلا مانع است .

 

 

 


تبلیغات

محل تبلیغات شما

آخرین ارسال ها

آخرین جستجو ها

نسیم بهاری MIRACULOUS LADY BUG1