نویز | آموزش AVR | آموزش میکرو | میکروکنترلر

وبلاگ آموزشی احسان نوری ::: Ehsan Nouri's Weblog

نویز | آموزش AVR | آموزش میکرو | میکروکنترلر

وبلاگ آموزشی احسان نوری ::: Ehsan Nouri's Weblog

" نویز رسانه ای است برای آموزش آسان مفاهیم میکروکنترلر و الکترونیک "

دریافت مستندات
آخرین نظرات
  • ۲۰ خرداد ۰۰، ۲۰:۴۹ - حسام الدین سلطانی
    خعلی عالی
  • ۲ ارديبهشت ۰۰، ۱۸:۱۱ - حسام الدین سلطانی
    خیلی عالی

در ادامه سلسله مباحث آموزشی تایمر/کانترها اینبار به بررسی مدهای مختلف کاری تایمر/کانترها و علی الخصوص مد CTC میپردازیم.

 

پس با ما در ادامه مطلب همراه باشید...

 

به نام خدا

 

سلام

بازهم اومدم با دست پُر !!!

 

اما قبلش طبق معمول،سخنی با دوستان داشته باشیم ...

 

اول از همه تشکر میکنم از اون دسته از دوستانی که نظر میدند و گله کنم از این همه بازدید کننده که عین خیالشون نیست و نظر نمیدند !

خداییش بی انصافی نیست که نظر نمیدید ؟؟؟؟

اصلا دلتون میاد نظر ندید ؟؟؟ crying

دلم فقط به نظرات شما خوشه ! (یکم انصاف داشته باشید !!!) blush

 

دوم اینکه بعضی از دوستان در قسمت نظرات یه سری سوالات بی ربط میپرسن که به همین دلیل نظرشون تائید نمیشه !

آخه برادر من مگه اینجا مرکز پاسخگوئیه ؟؟؟؟

سوال بپرسید،اما از مباحثی که آموزش داده میشه،نه از هرجا دلتون میخواد !

منم که اینجا خدای میکروکنترلر نیستم که ! یه چیزایی بلدم به شما هم آموزش میدم.(البته به سبک خاص خودم !wink)

اون بالا هم نوشتم اول کار،که ادعایی بر مطالب ارائه شده نداریم ...

پس کسی انتظار خاصی از من نداشته باشه.

 

سوم اینکه قصد دارم وبلاگ رو به وبسایت تبدیل کنم !

البته منظورم این نیست که فقط نام دامنه وبلاگ رو عوض کنما !

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

اینجا نظرات شما خیلی خیلی برام مهمه !!!

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

 

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

 

بسه دیگه !laugh

حرف زیاد دارم و حال تایپ ندارم ...

این پست،یکی از نفس گیرترین پستهای وبلاگ خواهد بوووود.(حواستونو جمع کنید!) cool


 

تا حالا مباحثی که در ارتباط با تایمر/کانتر میکروکنترلرهای AVR مطرح شده،ایناس :

 

تا پست های بالا رو بصورت کامل مطالعه نکردید،نیاین سراغ بحث امروز،که چیزی یاد نمیگیرین ! (از ما گفتن بود.بعدا نگید چرا بد توضیح دادی !!!)

 

و اما آغاز درس ....

 

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

 

تایمر/کانترها در میکروکنترلرهای AVR در 4 حالت (مود(Mode)) اصلی میتونند مورد استفاده قرار بگیرند :

 

1.Normal Mode

2.CTC Mode

3.Fast PWM Mode

4.Phase Correct PWM Mode

5.Phase And Frequency Correct PWM Mode ==> در بعضی از میکروکنترلرهای AVR

 

در ابتدا،نگاهی گذرا میندازیم به حالت Normal و البته زیاد روش مانور نمیدیم،چون در مبحث امروز که CTC هست بیشتر با ریزه کاری های کار آشنا میشید.

 

در ابتدا تایمر/کانتر شماره صفر رو بررسی میکنیم.

 

1.Normal Mode :

 

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

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

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

به روایت تصویر :

 

 

توصیه میشه که از این مود برای عملیات ساده ای مثل شمارش استفاده کنید ! (بریم جلو متوجه میشید چرا ؟!)

 

 

2.CTC Mode :

 

که مخفف Clear Timer On Compare Match میباشد.

اگه جمله بالا رو بخوایم ترجمه کنیم داریم : پاک کردن تایمر در هنگام مچ شدن عمل مقایسه !

یعنی چه ؟! یعنی هر وقت که مقدار تایمر (TCNT0) با یه مقدار دیگه (OCR0) برابر شد،مقدار تایمر/کانتر رو صفر کن .

به عبارت دیگر،مقدار Max ما در اینجا دیگه FF نیست.بلکه مقدار ماکزیمم مثل شکل زیر OCR0 میباشد.

 

 

 

بذارید یه جور دیگه هم به این قضایا نگاه کنیم.

در قسمتهای قبلی آموزش،عمل مقایسه رو بصورت نرم افزاری انجام میدادیم ! یادتونه ؟!

یعنی میومدیم با فرمول،مقدار TimerCount رو حساب میکردیم و داخل برنامه یه شرط میذاشتیم که هر وقت مقدار رجیستر TCNTx برابر با مقدار TimerCount شد،فلان کار رو انجام بده !!!

اما استفاده از اینگونه شروطی که دائما CPU رو درگیر خودش میکنه و در واقع استفاده از روش polling،ایده آل و مطلوب نیست.

با استفاده از مود CTC،عمل مقایسه بصورت سخت افزاری انجام میپذیره و نتیجتاً احتمال خطا کمتر میشه و بار مقایسه نرم افزاری از روی دوش CPU برداشته میشه.

در ادامه بیشتر در اینباره توضیح میدم.

 

اینم یه تصویر کاملتر :

 

 

در اینجا هم میبینید که مقدار Max ، هر مقداری میتونه تعیین بشه و در سیکلهای متفاوت مقدارهای متفاوتی رو اختیار کنه !

 

اینم یکی دیگه :

 

این شکل مربوط به تایمر/کانتر صفره .

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

یه خط چین افقی وجود داره که همون مقدار مقایسه ای ما (Compare Match) میباشد.==> OCR0A که برای مثال مقدارش 250 در نظر گرفته شده.

 

اما دقت کنید که نمودار اولی،توسط میکرو ساخته نمیشه،بلکه یک نمایشی هست برای درک بهتر مسئله !

میکرو فقط پالس سرش میشه !!!

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

وقتی به OCR0 رسید (که همون Max ما باشه)،میکرو رو مطلع میکنه که مقدار تایمر/کانتر با مقدار رجیستر مقایسه ای برابر شده.(از طریق رجیستر مربوطه و وقفه)

در شکل بالا چون یک مثاله،براش تعریف شده که با مچ شدن مقادیر دو رجیستر TCNT0 و OCR0،پایه OC0 میکرو Toggle بشه !

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

 

 

 

دقت داشته باشید که مباحث داره به ساده ترین حالت ممکن پیش میره و هیچ ادعایی بر کامل بودن مطالب وجود نداره !

 

 

بررسی رجیسترها در تایمر/کانتر صفر :

 

بررسی رجیستر OCR0 :

Output Compare Register

 

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

دقت داشته باشید که تایمر/کانتر صفر 8 بیتی هست و میتونه مقداری بین 0 تا 255 رو اختیار کنه.

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

 

بررسی رجیستر TCCR0 :

Timer/Counter Control Register

 

بیت های 3 و 6 ؛ Bit 6 , 3 – Wave Generation Mode Bits :

با استفاده از این دوتا بیت و همچنین جدول زیر،میتونیم مود کاری تایمر/کانتر صفر رو مشخص کنیم :

 

 

که در اینجا ردیف سوم جدول بالا منظورمونه و مقدار WGM0:1 برابر با 10 در نظر گرفته خواهد شد.

 

بیت های 4 و 5 ؛ Bit 5 , 4 – Compare Match Output Mode :

مشخصا در میکروکنترلر ATmega32 پایه ای داریم به نام OC0 .

یه جدول هم داریم به قرار زیر :

 

 

این جدول میگه که با برابر شدن مقدار تایمر/کانتر صفر با مقدار رجیستر OCR0،روی پایه OC0 میکرو بیا و یه حرکتی بزن !

 

حالت 00 : غیر فعال بودن OC0 ==> پایه OC0 در حالت عادی به کار خود ادامه خواهد داد.

حالت 01 : به محض مچ شدن،وضعیت پایه OC0 میکرو Toggle خواهد شد. ==> یعنی اگه 1 منطقی روی پایه هست 0 میشه و اگه 0 هست 1 میشه !

حالت 10 : به محض مچ شدن،وضعیت پایه OC0 میکرو Clear خواهد شد. ==> یعنی وقتی مچینگ اتفاق افتاد وضعیت پایه OC0 صفر خواهد شد.

حالت 11 : به محض مچ شدن،وضعیت پایه OC0 میکرو Set خواهد شد. ==> یعنی وقتی مچینگ اتفاق افتاد وضعیت پایه OC0 یک خواهد شد.

 

بررسی رجیستر TIMSK :

Timer/Counter Interrupt Mask Register

 

بیت 1 ؛ Bit 1 – OCIE0: Timer/Counter0 Output Compare Match Interrupt Enable :

با یک کردن این بیت،میتونید وقفه مچینگ مقدار تایمر/کانتر صفر و مقدار رجیستر OCR0 رو فعال کنید.

 

بررسی رجیستر TIFR :

 

Timer/Counter Interrupt Flag Register – TIFR

 

بیت 1 ؛ Bit 1 – OCF0: Output Compare Flag 0 :

هنگامی که مقدار تایمر/کانتر صفر و رجیستر OCR0 با همدیگر برابر شد و هون مچینگ خودمون اتفاق افتاد،این فلگ یک میشه.

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

همچنین با نوشتن 1 بر روی این فلگ،میتوان بصورت دستی آن را صفر کرد.

دقت داشته باشید که با فعال بودن بیت وقفه سراسری (I) از رجیستر SREG ( با دستور اسمبلی "sei" در محیط کدویژن ) و همچنین بیت OCIE0 از رجیستر TIMSK و فعال شدن همین بیت،وقفه اجرا خواهد شد.

 

بررسی رجیسترها در تایمر/کانتر یک :

 

بررسی رجیسترهای OCR1A , OCR1B :

Output Compare Register 1 A - OCR1AH and OCR1AL

Output Compare Register 1 B - OCR1BH and OCR1BL

 

 

دوتا رجیستر داریم از نوع 16 بیتی که عددی بین 0-65535 رو میتونند در خودشون جای بدند.

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

یه عددی هم از مسئله بدست آوردیم که مقدارش 24999 بود.

حالا این عدد رو میریزیم داخل یکی از این دوتا رجیستر.

 

اما تو کدوم یکیشون بریزیم ؟!

تو هرکدوم که دوست داشتید !

 

در واقع کمپانی اتمل برای این بخش 2 تا Compare Register تعریف کرده که قادر باشیم مقدار تایمر/کانتر یک رو همزمان با دو مقدار (OCR1A , OCR1B) مقایسه کنیم.

پس این دوتا ماهیتاً هیچ تفاوتی با هم ندارند !

 

 

بررسی رجیستر TCCR1A :

Timer/Counter1 Control Register A - TCCR1A

 

بیت های 0 و 1؛ Bit 1:0 – Wave Generation Mode Bits :
با این دو بیت و بیتهای WGM12:13 از رجیستر TCCR1B میتونیم مود کاری تایمر/کانتر یک رو مشخص کنیم.

 

بیت های 4 و 5 و 6 و 7 ؛ Bit 4:7 – Wave Generation Mode Bits :

برای تایمر/کانتر یک هم مشخصا پایه هایی با نام های OC1A و OC1B وجود داره.

که طبق توضیحات قبلی برای تایمر/کانتر صفر و جدول زیر داریم :

 

 

 

بررسی رجیستر TCCR1B :

Timer/Counter1 Control Register B - TCCR1B

 

بیت های 3 و 4؛ Bit 4:3 – Wave Generation Mode Bits :

از این رجیستر هم با دو بیت WGM12,WGM13 کار داریم.

 

این چهار بیت (WGM10,WGM11,WGM12,WGM13) از دو رجیستر TCCR1A و TCCR1B در کنار هم میتونند مود کاری تایمر/کانتر رو تعیین کنند !

 

چجوری ؟!

 

اینجوری ! :

 

مود شماره 4 و 12 جدول بالا مدنظر ماست !

که فعلا ما مود 4 رو انتخاب میکنیم.مود 12 رو اگه وقت شد یه توضیحاتی براش میدم !

که مقدار متناظرش برای 4 فلگ WGM10:13 برابر 0100 خواهد بود.

 

بررسی رجیستر TIMSK :

Timer/Counter Interrupt Mask Register

 

بیت 3 و 4 ؛ Bit 3:4 – OCIE1A:B: Timer/Counter1, Output Compare A:B Match Interrupt Enable :

با یک کردن هر یک از دو بیت بالا میشه،وقفه های برابری مقدار تایمر/کانتر یک با رجیستر های OCR1A و OCR1B رو فعال کرد.

 

بررسی رجیستر TIFR :

 

Timer/Counter Interrupt Flag Register – TIFR

 

بیت 3 و 4 : Bit 4:3 – OCF1A:B – Timer/Counter1, Output Compare A/B Match Flag Bit :

هرگاه مقدار رجیستر TCNT1 با مقدار رجستر OCR1A (یا OCR1B) برابر بشه،مقدار فلگ OCF1A (یا OCF1B) یک خواهد شد.

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

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

با فعال بودن فلگ وقفه سراسری از رجیستر SREG و همچنین فعال بودن بیت OCIE1A (یا OCIE1B) و فعال شدن فلگ OCF1A (یا OCF1B) وقفه رخ خواهد داد.

 

بررسی رجیسترها در تایمر/کانتر دو :

دیگه برای این یکی توضیح نمیدم.

آخه چقدر من باید توضیح بدم برای شما ؟! هان ؟؟؟؟؟ angel

 

بررسی رجیستر OCR2 :

Output Compare Register

مقدار مورد نظر برای مقایسه داخل این رجیستر ریخته میشه !

 

بررسی رجیستر TCCR2 :

Timer/Counter Control Register

 

بیت های 3 و 6 ؛ Bit 6, 3 – WGM21:0: Waveform Generation Mode :

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

جدول زیر هم هست :

 

 

بیت های 4 و 5 ؛ Bit 5:4 – COM21:0: Compare Match Output Mode :

با این بیتها هم میشه مث قبل وضعیت پایه OC2 رو مشخص کرد.

طبق جدول زیر :

 

 

 

بررسی رجیستر TIMSK :

Timer/Counter Interrupt Mask Register

 

بیت 7 ؛ Bit 7 – OCIE2: Timer/Counter2 Output Compare Match Interrupt Enable :

با یک کردن این بیت،وقفه تایمر/کانتر دو رو میشه فعال کرد.

 

 

بررسی رجیستر TIFR :

Timer/Counter Interrupt Flag Register – TIFR

 

بیت 7 ؛ Bit 7 – OCF2: Output Compare Flag 2 :

اگر مقدار تایمر/کانتر دو با مقدار رجیستر OCR2 برابر بشه،این بیت یک میشه.

و توضیحات قبلی ...

 

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

اگه دوست دارید که قاط نزنید !cheeky سعی کنید مطالب رو تو ذهنتون طبقه بندی کنید.

و این را بدانید که مطلب زیاده برای گفتن،اما کی حالشو داره ؟؟؟!!! laugh

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

 

از شما خداحافظی میکنم تا تابستون 1393 !

دیگه ما هم بریم سراغ درس و مشقمون !!!

مثلا امتحانات داره شروع میشه ها ...

 

از دوستان گلم که مطالب وبلاگو خوندن و استفاده کردن تقاضا دارم که منو هم دعا کنند که انشاالله امتحانات با نمراتی خوب پاس بشن و انگیزه من برای وقت گذاشتن و پست زدن داخل وبلاگ دو چندان بشه !

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

مرسی و ممنون

امیدوارم تو تابستان با سرعت بیشتری پیش بری.


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

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

سلام

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

پاسخ:
چه عجب !
بعد از مدتها یه نفر پیدا شد که منتظر ادامه مباحث باشه.

چشم داداش
سلام
خیلیم عالی
پس چرا بقیش ادامه نمیدید؟
من تازه با وبلاگتون آشنا شدم ولی تقریبا همه مطالب خوندم
درمورد duty sycle و pull up مقاومت اگه میشه توضیح بدین که چی هستن
پاسخ شما برام ایمیل میشه دیگه؟

پاسخ:
سلام
Duty Cycle : عبارت است از نسبت زمان یک بودن به صفر+یک بودن یک سیگنال در یک دوره تناوب ؛ که معمولا بصورت درصد بیان میشه !
Pull Up Resistor  : عبارت است از مقاومتی که بالاکشنده سطح منطقی است.به عبارت بهتر،سطح منطقی پایه مورد نظر را در حالت پیشفرض به سطح یک میرساند.

ضمنا؛پاسخ برای هیچکس ایمیل نمیشه.
اگر سوالی دارید همینجا بپرسید و همین جا هم جوابشو بخونید.

موفق و پیروز باشید...
با سلام و خسته نباشید من کاربر جدید وبلاگ شما هستم . در جلسه ای که کار با واحد adc  و سنسور lm35  را توضیح دادید نکته ای که معمولا بیشتر کاربران با ان مشکل دارند ذخیره کردن اطلاعات خوانده شده در حافظه میکرو و انتقال آن از طریق usart  می باشد در صورت امکان این بخش را نیز توضیح دهید . مبحث ذخیره اطلاعات خوانده شده از سنسورها و خوانده شدن آنها در صنعت بسیار مهم می باشد . با تشکر از زحمات شما . آزادی
پاسخ:
با سلام
برای ذخیره سازی اطلاعات میتوانید از یک متغیر مناسب و ریختن اطلاعات داخل اون استفاده کنید.
یا مثلا میتونید یه آرایه تعریف کنید و مقدارهای خوانده شده از سنسور رو در درایه های اون ذخیره کنید.

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

موفق باشید.
۱۷ مرداد ۹۳ ، ۲۰:۰۵ خادم الکترونیک

سلام به شما

یک دنیا ممنونم

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

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

مهندس من در بسکام میخام مد FAST PWM رو برای تایمر 1 فعال کنم
ممنون میشم بفرمائید که باید کدوم رجیستر رو ادرس دهی کنم و باید چه مقداری درونش بریزم / خیلی لطف میکنید در این زمینه راهنمایی بفرماید

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




پاسخ:
سلام
ممنون

فعلا برای ادامه دادن مباحث مردد شدم !


با سلام . خسته نباشد.

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

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

 

پاسخ:
ممنون

تا ببینم چی میشه !
سلام
من یه هفته گذشته رو با وبلاگ شما گذرندم
خیلی خوشگذشت
ممنون بخاطر همه لحظه هاش

هرجا هستی موفق باشی
پاسخ:
سلام
باعث افتخار ماست.

بازم تشریف بیارید !

موفق باشید.
سلام

آقا یه مشورت می خوام بکنم

من برق می خونم و ترم 3-4 به مشکل خوردم که تو این دو ترم روی هم 9 واحد پاس کردم و الان دارم می رم ترم 7

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

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

تو دانشگاهم کلاً واحدای عملی خیلی کم گذروندم که این ترم آز منطقی و ماشین 1 و الک 1 رو دارم میگیرم یعنی تا الان فقط آز مدار 1 داشتم و از نظر عملی خیلی سطحم پایینه


و اینکه قصد دارم دوره های عملی بگذرونم دوره های میکرو و plc و ابزار دقیق

می خوام بدونم من که هیچ کار عملی ای نکردم و واحدای عملیمو هنوز نگرفتم به مشکل نمی خورم تو گذروندن این دوره ها ؟ من مثلاً در حدی ضعیفم که اسیلوسکوپ باید کلی جون بکنم تا یادم بیاد چطوری باهاش کار بکنم ! یا کار با پاور ساپلای رو اصن خوب یاد نگرفتم ...

به نظر شما چه خاکی بر سر بریزم ؟ :دی

و اینکه به نظر شما دوره avr برم بهتره یا arm ؟؟؟


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

اگه این همه وراجی منو تحمل کردی و خوندی که دمت گرم :دی اگرم نخوندی که ... بازم دمت گرم :دی
پاسخ:
سلام

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

توجه داشته باشید که کلاسهای آموزشی هیچکدوم به سبک و سیاقی که من توضیح میدم،توضیح نمیدن و سطح آموزشیشون معمولا بالاست و دانشجوهای ضعیف این وسط له میشن !!!

در پایان : اگه به میکرو علاقه ندارید و یا از روی اجبار و ناچاری و حرف دوستان و مردم میخواین یاد بگیرین،بهتره وقت خودتونو تلف نکنید و به جای شرکت در دوره ها بچسبید به درسهاتون ! :)

موفق باشید.
سلام
من یه مشکل تو برنامه نویسی دارم من تازه وارد برنامه نویسی C شده ام.
از اینترنت برنامه ی پیدا کردم که با اون میتونم سروو موتور رو کنترل کنم موفق به راه اندازی شدم ولی من می خوام دوتا سروو راه اندازی کنم از atmega16 پایه (PD.5  (OCR1A برای این کار استفاده می کنم. یه جا نوشته بود میشه با OCR1B هم سروو راه اندازی کرد یعنی هم زمان دو سروو رو راه اندازی کرد.

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



TCCR1A=0x80;
TCCR1B=0x12;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x4E;
ICR1L=0x20;
OCR1A=1240;
پاسخ:
سوال بی ربط !
ممممممم

من هییچ کدوم از این دو حالت نیستم راستش :دی

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


راستش من زیاد دغدغه ی شغل آینده هم ندارم که بگم می خوام یاد بگیرم برای نون در آوردن و ...

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

الان یه کم ترسیدم یعنی من تو کارهای عملی ضعیفم نمی تونم avr یا plc یاد بگیرم ؟

یه سوال دیگ دارم اینکه ابزار دقیق کاربردش تو چیه ؟
پاسخ:
بنده فقط نظرمو گفتم !

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

موفق باشید.
سلام
آقا کجاش بی ربط بود !!!!!!!

پاسخ:
علیک سلام
بنده مسئول پاسخگویی به سوالات مربوط به پست های وبلاگ هستم
نه کمک به حل مشکلات پروژه ای شما !

از همون جایی که پروژه رو گرفتید سوال کنید.
سلام
شما یه طوری گفتید پروژه که همه فکر می کنن من تو کار تولید هستم و تو این کار دارم سود می کنم !!!!
نه عزیزم این نه پروژه دانشجویی و نه چیز دیگه من یه سوال داشتم که شما متاسفانه غرورتون این اجازه رو نمی ده که جواب بدین باشه اشکال نداره!! یه ایرانی به غیرتش مینازه و هیچ وقت هم زانو نمی زنه شما کمک نکید مطمئن باش کس دیگه این کار رو می کنه !!! هیچ سوالی بی جواب نمی مونه  دوست عزیز ...
این تیشه رو به ریشه دشمنانمون بزنیم نه به خودمون !!!!
با آرزوی سربلندی ایران عزیز
موفق و پیروز باشید...
پاسخ:
سلام

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

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

سلام

خدا خیرتون بده

اجرتون با خدا فقط این از دستم بر میاد مرسی

دمت گرم داداش
پاسخ:
:)
سلام
در مود ctc فرکانس متغییر است؟
پاسخ:
؟
واقعا عالیه ....از هر کتاب مرجعی که توی بازار هست مفهوم تره ...بی نهایت ارزوی موفقیت براتو ن دارم 
پاسخ:
سپاس
واقعا عالیه ....از هر کتاب مرجعی که توی بازار هست مفهوم تره ...بی نهایت ارزوی موفقیت براتو ن دارم 
پاسخ:
ممنون
سلام. دستتون درد نکنه.عالی بود
سلام. دستتون درد نکنه.عالی بود
سلام
آقا من چجوری مثلا این دستور رو به صورت دسترسی مستقیم به رجیستر پیاده کنم
مثلا اینو ببینید

http://s6.picofile.com/file/8208512434/Untitled.png

این دستور مال بسکامه ولی من نمی دونم چجوری به رجیسترا دسترسی داشته باشم ای کاش مثلا هر کدوم رو که توضیح میدین مثالم بزنید

من می خوام تایمر1 رو در مد تایمر و با پرسکل 1024 راه اندازی کنم چجوری با رجیستر اینکارو بکنم

خیلی دنبالشم لطفا جواب بدین ممنون


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

آقا احسان دمت گرم واقعا گل کاشتی با این طرز آموزشت
خیلی خیلی مفید پر بازده بود.
انشالله که روز به روز پیشرفت بکنی
salam khoob bood movafagh bashid 
سلام 
دو رجیستر OCR1A , OCR1B رو گفتید فرقی نمیکنه توی کدوم عدد بزاریم و هر دو رو باهم مقایسه میکنه 
آیا وقفه سرریز رو برای هر دو عدد میده ؟ یا اونی که کوچیکتره ؟

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

ممنون بزرگوار وقت میگزارین و به ما یاد میدن ارزو بهترین ها رو براتون دارم

بازم مثل همیشه علی

واقن عالی .خیلی خوب فهمیدی و میفهمونی

بسیار عالی و مختصر و مفید

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی